Ошибка DST браузера Windows до 2007 года - PullRequest
1 голос
/ 04 января 2012

Браузеры 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 работает правильно.

Кто-нибудь испытал что-то подобное или знает какой-нибудь обходной путь?

...