Да, это абсолютно верно. 2:55 утра по центральному стандартному времени 4 апреля 1995 года не существовало, так как настенные часы пропустили с 2:00 до 3:00 из-за перехода на летнее время . Исключение кажется достаточно ясным по этому поводу. (Использование «стандарта» здесь несколько сложно; было бы более разумно назвать его «Центральное время», которое будет включать «Центральное стандартное время» и «Центральное летнее время», но это другой вопрос. Черт, я бы предпочел Олсон идентифицирует себя ...)
В другое время местное время может быть неоднозначным - если часы идут назад час (или больше!), То местное время может появляться дважды.
Вопрос: как вы хотите, чтобы ваш код вел себя в такой ситуации?
К сожалению, исключение составляет всего лишь ArgumentException
- в Время Нода у нас будет исключение для этого точного случая, чтобы его было легче обнаружить и поймать. (У нас также будет что-то вроде IsAmbiguous и IsSkipped, чтобы вы могли проверять, не перехватывая исключение.)
Но основное сообщение заключается в том, что это не ошибка в BCL - это преднамеренное.