Я пытаюсь разобрать следующий String
в DateTime
объекта в C#:DateTime.ParseExact не работает вообще, почему?
DateTime.ParseExact("20101108 230125", "yyyyMMdd hhmmss", null)
хотя значение выглядит правильно метод ParseExact
просто продолжает давать мне следующее:
Строка не была признана действительный DateTime.
Может ли кто-нибудь сказать мне, почему и как я могу разобрать вышеуказанную строку, не делая это вручную? Разве не ParseExact
должен быть для такого случая?
Почему это вызывает исключение? Лично я ожидал бы, что hh конвертирует 23 в 11, а не бросает исключение. Вызывает ли это ParseExact? –
@Marcus: 'ParseExact' будет делать то, что он говорит; проанализируйте строку с использованием указанного * точного * формата. Поскольку 'hh' говорит ему ожидать 12-часовое значение времени в этой позиции,' 23' явно выходит за пределы допустимых значений. Он анализирует точную строку, никаких преобразований не производится. Так что да, исключение выбрано методом 'ParseExact'. –
Приветствия за расширенное объяснение. :) –