如何清除与时刻时区对象关联的时区



使用moment-timezone,如果您设置了一个带有时区的矩对象,例如 moment.tz('America/New_York'),如何清除时区并将时刻更改为"本地"时间?

值得注意的是,moment.local()不起作用(随后对moment.tz()的调用仍然等于 America/New_York (。我可以确认我的当地时间不是America/New_York

我发现的唯一解决方案是设置一个无效的时区,例如 moment.tz('local') .这会向控制台记录一条警告,指出您尝试设置了无效的时区(很烦人(,但它会清除与时刻对象关联的时区,并将其返回到本地时刻对象。moment-timezone吐出的警告强调,这个解决方案将来可能会中断,这显然是一个黑客。

实现此目的的正确方法是什么?

更新

此问题是由 moment-timezone 中的错误引起的。从版本 0.5.24 开始,moment.local()应正确清除与moment-timezone对象关联的时区。

源语言

在...时刻!这似乎是moment-timezone中的一个错误(请参阅#738,#258(。我发现的当前解决方法是首先使用moment.utc()(清除时区并将时刻设置为"UTC"模式(,然后moment.local()。即 moment.utc().local() .

最新更新