【发布时间】:2016-08-24 16:58:18
【问题描述】:
我使用 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_zonesAmerica/Los_Angeles 的UTC 偏移量是-8 小时。
Moment 也使用 tzdb v.2016c 和维基百科文章。
那么,为什么这里有两个不同的结果?哪个结果是正确的?
P.S.:America/Kentucky/Monticello 和 Europe/Tiraspol 也有同样的区别。
【问题讨论】:
-
-7是目前(2016 年 4 月 29 日)的正确答案。问题是为什么 Moment.isDSTOffset()例程不知道这一点。我认为这与 Moment 如何拥有 Date 值有关;如果它来自原生 Date 对象,它可能无法分辨。 -
知道了!感谢您的澄清!这个
moment("20160101").tz("America/Los_Angeles").utcOffset()按预期工作。
标签: javascript timezone momentjs