MomentJS 设置时区而不改变时间

新手上路,请多包涵

我正在尝试在不更改时间值的情况下为 moment.js 中的日期设置时区

我在 utc 中得到一个日期:

 date.toString() // Sun Sep 27 2015 00:00:00 GMT+0000

我需要在不更改时间的情况下设置时区。

 Sun Sep 27 2015 00:00:00 GMT-0500

如果我使用 date.utcOffset(moment().utcOffset()) 它会添加偏移量:

 date.toString() // Sat Sep 26 2015 19:00:00 GMT-0500

我可以

date = moment(date.format("YYYYMMDDHHmmssSSSS"), "YYYYMMDDHHmmssSSSS")

但这似乎是一种低效的方法。

有没有什么方法可以只改变时区而不改变时间?

原文由 Tony Brix 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

在撰写本文时(时刻 2.22),您可以使用 — 从本地转到 UTC,然后使用 someLocalMomentVariable.utc(true) someUtcMomentVariable.local(true) UTC 返回到本地。

原文由 Grinn 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您使用的是 moment.js,请使用 utcOffset 并将 true 作为第二个参数。

 date2 = moment(date1).utcOffset('+0400', true)

或者,如果您使用的是 moment-timezone ,则可以在 moment 对象上使用 tz 函数,第二个参数为 true

 date1 = moment(date1).tz('Asia/Kolkata', true)

原文由 Inayath Ebrahim 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题