ConvertTimeFromUtc, вычисляющий 00:00:00 для (UTC-07: 00) Аризона - PullRequest
0 голосов
/ 09 сентября 2018

Я пытаюсь рассчитать время от UTC до определенного часового пояса. Для этого я использую метод ConvertTimeFromUtc, передав ему указанное время UTC и TimeZoneInfo указанного отображаемого имени часового пояса. Это работает для нескольких часовых поясов, однако для -7 вычисляется 0 с использованием следующих (упрощенных) параметров:

TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Parse("01/01/0001 05:02:00"), timeZoneInfo)

Однако после выполнения расчета он выглядит как {01/01/0001 00:00:00}, что странно, поскольку он работает для других часовых поясов, таких как Минск и т. Д.

Я что-то упустил?

1 Ответ

0 голосов
/ 09 сентября 2018

гул у вас UTC-7, поэтому с 01.010001 05:02:00 вы в 31.120000 22:02:00 (или 31.12.0000 в формате США)

 TimeZoneInfo.ConvertTimeFromUtc(DateTime.Parse("01/01/0001 05:02:00"), timeZoneInfo);

и MSDN говорит:

Тип значения DateTime представляет даты и время со значениями в диапазоне от 00:00:00 (полночь) до 1 января 0001 года от Anno Domini (Common Era) до 23:59:59 PM, 31 декабря 9999 года нашей эры (CE). в григорианском календаре.

01.010001 00:00:00 - первое доступное свидание ..

вы ничего не пропустили, это просто предел DateTime

извините за мой английский

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...