FormatException при преобразовании строки в DateTime
Моя задача - извлечь данные из файла XML. Каждый узел в файле XML содержит дату и время. Чтобы прочитать и преобразовать его, я использую следующее:
date = DateTime.ParseExact (turnoNode.SelectSingleNode ("FechaHoraAlta"). InnerText, "дд / мм / гггг чч: мм: сс", CultureInfo.InvariantCulture);
Для первых двух узлов он правильно конвертирует даты:
<FechaHoraAlta>19/04/2012 10:00:36</FechaHoraAlta>
<FechaHoraAlta>19/04/2012 11:00:05</FechaHoraAlta>
Проблема возникает для третьего узла, содержащего:
<FechaHoraAlta>22/04/2012 19:37:52</FechaHoraAlta>
Затем генерируется исключение FormatException о том, что строка не была распознана как допустимый DateTime.
Я попытался отладить его, все, что я знаю, это то, что он получает InnerText правильно, это "22/04/2012 19:37:52". Это просто не может преобразовать это, но я понятия не имею, почему.
Я видел много подобных проблем здесь на stackru, но до сих пор я не нашел никакого правильного решения.
Кто-нибудь знает в чем может быть проблема?
Заранее спасибо.
1 ответ
Посмотрите на ваш шаблон формата:
"dd/MM/yyyy hh:mm:ss"
"чч" означает двенадцатичасовые часы, обычно в сочетании с "тт" для обозначения AM/PM. Таким образом, 19 не является допустимым значением. Вы хотите "ЧЧ" вместо "чч", так как "ЧЧ" использует 24-часовые часы.
См. MSDN для пользовательских строк формата даты и времени для получения дополнительной информации.