GetUtcOffset возвращает неправильный набор для определенных лет / дат - PullRequest
1 голос
/ 09 июля 2019
 var currentServerOffset = TimeZone.CurrentTimeZone.GetUtcOffset(new DateTime(1972, 03, 19, 02, 00, 00);

с использованием вышеупомянутого возвращает неправильное смещение, но когда вы проходите через 26 марта, оно исправляется.

кажется, что это отключено на целую неделю, в моих тестах это было в 1972и ссылка 1973 года: https://greenwichmeantime.com/info/calendars/bst-dates/

Я думаю, что это может быть связано с ошибками GetDaylightChanges в эти годы.начало отключено на 7 дней.

Как мне обойти это?

1 Ответ

1 голос
/ 09 июля 2019

Нам не удалось заставить GetUtcOffset работать с историческими датами.Вместо этого мы использовали Noda Time, который должен быть таким простым:

var dt = Instant.FromUtc(1972, 03, 19, 02, 00, 00);
DateTimeZone zone = DateTimeZoneProviders.Tzdb["Europe/London"];
Offset offset = zone.GetUtcOffset(dt);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...