【发布时间】:2015-07-25 02:35:32
【问题描述】:
假设现在是美国/丹佛当地时间上午 10:00。当我在时刻时区设置默认时区时:
moment.tz.setDefault("America/Chicago");
当前时间对象打印在正确的时区,美国芝加哥:
moment().toString(); // returns 11:00am
但是,当我解析日期时,例如:
// exampleTime equal to 9:05am, already in America/Chicago
var parsedTime = moment(exampleTime, "HH:mm")
它似乎需要日期,在当地时区(“美国/丹佛”)解析它,然后将其“转换”为美国/芝加哥。所以,当我:
parsedTime.toString(); //prints ~10:05am
它会打印出比应有的时间早一个小时的时间。
每次解析时都必须指定时区吗?为什么不在默认时区解析?
【问题讨论】:
-
如果你想弄乱时区,你应该改用
moment.tz()。 -
我正在使用 moment.tz 来指定默认时区。我想知道为什么解析日期会在本地时区解析并转换,而不是在默认时区解析。
-
好吧,试试
moment.tz(exampleTime, "HH:mm", 'America/Chicago'),看看时间是否不变。 -
这就是我目前正在做的事情,但这似乎违背了拥有默认时区的目的。
标签: javascript timezone momentjs