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

getTimezoneOffset is different when i create a date with a timestamp

本文关键字:日期 getTimezoneOffset 不同 时间戳 创建      更新时间:2023-09-26

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

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

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

该时间戳位于2015年10月14日,当时法国处于中欧夏令时间,偏移量为UTC+2。今天,2015年12月11日,夏令时尚未生效,因此使用标准的中欧时间偏移UTC+1。

这就是时区的本质,尤其是那些有夏令时的时区。请参阅时区标记wiki中的"时区!=偏移",还可以阅读dst标记wiki,以便了解其影响。

这里的可视化也应该有所帮助。