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 для пользовательских строк формата даты и времени для получения дополнительной информации.

Другие вопросы по тегам