Даты в Safari отображаются с помощью Intl.DateTimeFormat с языком в США. - PullRequest
0 голосов
/ 21 мая 2019

Похоже, что реализация Int.DateTimeFormat в Safari предполагает, что второе воскресенье марта ВСЕГДА будет отрезком времени по летнему времени, что неверно, поскольку до 2007 года это было первое воскресенье апреля.Также кажется, что это влияет и на другой конец, когда заканчивается DST.PS: этот код используется в штате Индиана, США, который находится в восточном часовом поясе (GMT-4)

Более конкретно ...

  • 2007 и новее: правильно для всехдаты.
  • 2006: неправильно для дат между вторым воскресеньем марта и первым воскресеньем апреля и между последним воскресением октября и первым воскресеньем ноября.
  • 2005 и старше: неправильно для всех дат между вторым воскресеньем марта и первым воскресеньем ноября.

Вот небольшой JSBin, в котором указаны точные даты, когда это становится проблемой (обратите внимание, что все работает корректно на всех браузерах, кроме сафари) https://jsbin.com/mayadehowu/edit?js,output

var formatter = new Intl.DateTimeFormat('en');
var date = new Date('6/2/2005');
console.log(formatter.format(date)); // => outputs "6/1/2005"

Я копал дальше, и это может быть связано с этим изменением в спецификациях ECMA..1 https://www.ecma -international.org / ecma-262 / 5.1 / # sec-15.9.1.8"действовало ли переход на летнее время, если бы использовался текущий алгоритм перехода на летнее время навремя "

ES6 https://www.ecma -international.org / ecma-262 / 6.0 / # сек-летнее-время-корректировка " Ожидается, что реализация ECMAScript сделает все возможноепопытаться определить местную корректировку летнего времени. ПРИМЕЧАНИЕ Рекомендуется, чтобы реализации использовали информацию о часовом поясе базы данных часовых поясов IANA "

Кто-нибудь еще сталкивался с этой проблемой?Если да, каковы были ваши решения, чтобы обойти это?Мне нужно исправить, но я скептически отношусь к исправлению ошибки, связанной с Safari, добавляя час в определенных случаях, потому что, если Safari исправит это, наша логика снова будет нарушена.

...