DateTime IsDaylightSavingTime () обратная совместимость - PullRequest
3 голосов
/ 14 апреля 2019

В ЕС есть страны, которые будут отказываться от использования отдельного времени на лето и зиму.Это может произойти , как только 2021 .

Будет ли System.DateTime решать эту проблему с обратной совместимостью?Знает ли он, когда DST использовался, а когда нет?

// When running in 'FLE Standard Time' on 2023: false (obviously)
var isDayLightSavingTime = new DateTime(2023, 5, 1).IsDaylightSavingTime();

// When running in 'FLE Standard Time' on 2023: true (?)
isDayLightSavingTime = new DateTime(2019, 5, 1).IsDaylightSavingTime();

1 Ответ

1 голос
/ 14 апреля 2019

IsDaylightSavingTime метод возвращает конкретный DateTime в пределах диапазона летнего времени местного часового пояса, который возвращается свойством TimeZoneInfo.Local.

Если этот метод возвращает true для DateTime(2019, 5, 1), это означает, что именно в летнее время в вашем местном часовом поясе все эти данные сохранены в реестре. Поскольку вы упомянули, что это стандартное время FLE (в целом восточноевропейское время ), в 2019 году DST началось 31 марта и закончилось 27 октября. Вот почему 1 мая будет в летнее время в этом часовом поясе.

Будет ли System.DateTime решать эту проблему с обратной совместимостью?

Возможно. Но это «отказ» пока не уверен, насколько я могу видеть на этом посту. Когда это будет точно, я вполне уверен, что Microsoft выпустит обновление данных (поскольку оно будет огромным) как можно быстрее, и они объявят в своем блоге о часовых поясах .

В таком случае важно постоянно обновлять операционную систему.

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