Подтвердить что ты не робот

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

Эта строка кода:

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

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

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

Сообщение об ошибке: System.FormatException был необработанным Message = String не была признана допустимым DateTime.

4b9b3361

Ответ 1

"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" указывает универсальный формат сортировки.

Ответ 3

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