Moment Timezone :我不明白默认时区是如何工作的

Moment Timezone : I don't understand how default timezones work

假设我当地时间 10:00am America/Denver。当我在时刻时区设置默认时区时:

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")

它似乎获取日期,在本地时区 ("America/Denver") 中解析它,然后 "convert" 将其解析为 America/Chicago。所以,当我:

parsedTime.toString(); //prints ~10:05am

打印出的时间比应有的时间早了一个小时。

我每次解析时都必须指定时区吗?为什么它不在默认时区解析?

您使用得当,只是遇到了一个错误。它已经在 this issue, and there's a pending fix here.

中登录