2012-06-27 1 views
17

Эта строка кода:DateTime.ParseExact() не проверяет 24-часовые значения времени?

DateTime dt = DateTime.ParseExact(time, "hh:mm", CultureInfo.InvariantCulture); 

разбирает «время» значение «12:45» просто отлично, но бросает исключение «13:00»

Должен ли я использовать какой-то другой CultureInfo значение, или мне нужно добавить «pm» к значениям часа выше 12 или ...?

Сообщение об ошибке: Ошибка System.FormatException Сообщение = Строка не была признана действительной DateTime.

+13

Используйте «ЧЧ: мм» для разбора 24-часовых форматов. –

+2

+1 для использования термина «grok» в вопросе SO –

ответ

44

«hh» - это 12-часовой формат часов (от 01 до 12). Вам нужно использовать «HH» в течение 24-часовых часов.

DateTime dt = DateTime.ParseExact(time, "HH:mm", CultureInfo.InvariantCulture); 
2

Попробуйте это:

DateTime dt = DateTime.ParseExact(time, "u", CultureInfo.InvariantCulture); 

"u" указывает универсальный Сортируемый формат.

2

Хотя Ханс уже ответил на ваш вопрос в разделе комментариев, Here является ссылкой MSDN, описывающей все виды форматов даты, используемых с методом DateTime.ParseExact.

 Смежные вопросы

  • Нет связанных вопросов^_^