在我的浏览器(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,以便了解其影响。
这里的可视化也应该有所帮助。