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
适用于OSX的Chrome和Firefox会返回正确的值,因此浏览器进行Windows API调用似乎存在问题。
DST规则更改为:
- 2007年之前:4月1日星期日至10月最后一个星期日
- 2007年之后:3月的第2个星期日至11月的第1个星期日
似乎Windows正在应用2007年之前的日期的当前规则。在我的情况下,我有一个Javascript框架,使用完整的GMT时间与我们的服务器端(Java)框架进行通信。 Java正在应用CORRECT规则,因此在上述日期的情况下,服务器正在解释1993年3月14日错误提交的时间。
OSX中所有浏览器的相同提交工作正常。
有没有人经历过这样的事情或知道任何解决方法?