Браузеры Windows (IE, Chrome, Firefox) не соблюдают старые правила перехода на летнее время в США для дат до 2007 года. При использовании компьютера, настроенного на восточное время, следующий вызов javascript возвращает неверное время:
(new Date("03/15/1993")).toGMTString();
возвращает:
Mon, 15 Mar 1993 04:00:00 GMT <-- Incorrect
должно быть:
Mon, 15 Mar 1993 05:00:00 GMT <-- Correct
Chrome и Firefox для OSX возвращают правильное значение, поэтому возникает проблема с браузерами, выполняющими вызов Windows API.
Изменения правила DST:- До 2007 года: 1-е воскресенье апреля до последнего воскресенья октября- После 2007 года: со 2-го воскресенья марта до 1-го воскресенья ноября
Похоже, что Windows применяет текущие правила для дат до 2007 года. В моем случае у меня есть среда Javascript, которая взаимодействует с нашей серверной частью (Java), используя полное время по Гринвичу.Java применяет ПРАВИЛЬНЫЕ правила, поэтому в случае вышеуказанной даты сервер интерпретирует неправильно отправленное время 14 марта 1993 года.
Одинаковая отправка из всех браузеров в OSX работает правильно.
Кто-нибудь испытал что-то подобное или знает какой-нибудь обходной путь?