时刻时区:UTC偏移差异

时间:2016-04-29 13:39:57

标签: javascript timezone momentjs

我使用moment-timezone v.0.5.3-2016c库来计算时区的UTC偏移量:

var z = moment().tz("America/Los_Angeles");
z.utcOffset(); // -420 mins or -7 hours

// check if DST is shifted
z.isDSTShifted(); // false

但是这里https://en.wikipedia.org/wiki/List_of_tz_database_time_zones America/Los_Angeles的UTC偏移是-8小时。

Moment也使用tzdb v.2016c和维基百科文章。

那么,为什么这里有两个不同的结果?哪个结果是对的?

P.S。:America/Kentucky/MonticelloEurope/Tiraspol也存在相同的差异。

2 个答案:

答案 0 :(得分:2)

美国目前正处于夏令时(夏令时)。因此,我要使用显示UTC DST Offset的{​​{1}}列。

答案 1 :(得分:2)

调用时刻创​​建函数,moment()不带任何参数会返回当前时刻。由于时区偏移取决于它们所附加的日期和时间,因此结果将根据您调用此功能的时间而有所不同。

如果您想知道时间是否为夏令时,请使用isDSTisDSTShifted函数用于处理无效的本地时间,而不是检查DST。它本可以被命名为更好。