当我创建带有时间戳的日期时,getTimezoneOffset 是不同的

getTimezoneOffset is different when i create a date with a timestamp

在我的浏览器 (firefox) 中,我执行以下简单代码:

new Date().getTimezoneOffset();
new Date(1444824485080).getTimezoneOffset();

第一行return-60。我是法国人,所以这是我的时区。但是第二行returns -120。这怎么可能 ?我相信 1444824485080 只是一个时间戳(自 1970 年 1 月 1 日以来的毫秒数)。它如何影响用它创建的日期的时区?

该时间戳落在 2015 年 10 月 14 日,当时法国正处于欧洲中部夏令时 - 与 UTC+2 进行偏移。今天,2015 年 12 月 11 日,夏令时无效,因此使用标准的中欧时间偏移量 UTC+1。

这是时区的本质,尤其是那些有夏令时的时区。请参阅 the timezone tag wiki, and also read the dst tag wiki 中的 "Time Zone != Offset",以便了解影响。

visualization here 应该也有帮助。