zoneinfo имеет America/Denver
, не соблюдающих летнее время до 1965 года.
https://github.com/eggert/tz/blob/2019a/northamerica#L455-L467
> moment.tz('1965-06-01','America/Denver').isDST()
true
> moment.tz('1964-06-01','America/Denver').isDST()
false
(Использование 1 июня, чтобы не думать о дате перехода, которая не была одинаковой для всехСША в прошлом.)
Он America/Los_Angeles
наблюдает летнее время с остальной частью США с 1918 года.
> moment.tz('1918-06-01','America/Los_Angeles').isDST()
true
> moment.tz('1917-06-01','America/Los_Angeles').isDST()
false
Если вам требуется последовательное историческое время, используйте moment-timezone
вместополагаться на объект Date
браузера, что делает moment
, если вы не указали часовой пояс.Кросс-платформенные несоответствия и различные версии браузеров работают здесь против вас, так же как и Javascript, который не требует правильного поведения.(Я полагаю, что .NET Framework просто неправильный, но я не знаю, почему, посмотрите nodatime .)
Используйте moment.tz.guess()
, если вам нужно перевести пользователятекущее время в некотором часовом поясе (как вы можете догадаться).