【问题标题】:how do I maintain time offsets in moment?我如何保持时间偏移?
【发布时间】:2019-12-22 05:16:10
【问题描述】:

我正在尝试从时刻对象中添加/减去天数。但是,我遇到的问题是时间偏移与服务器的本地时间不同。

在我的时间里

2019-08-14T21:38:50-04:00

但是,我在本地得到+0000

moment().format('YYYY-MM-DD hh:mm ZZ')
2019-08-15 07:19 +0000

所以现在如果我尝试转换存储在数据库中的时间

moment("2019-08-14T21:38:50-04:00").format('YYYY-MM-DD hh:mm ZZ')
2019-08-15 01:38 +0000

如果我使用 parseZone() 我会得到

moment.parseZone("2019-08-14T21:38:50-04:00").format('YYYY-MM-DD hh:mm ZZ')
2019-08-14 09:38 -0400

我还尝试手动删除 4 小时的偏移量(以平衡它?)

moment("2019-08-14T21:38:50-04:00").utcOffset(-240).format('YYYY-MM-DD hh:mm ZZ')
2019-08-14 09:38 -0400

但输出(格式化后)的值总是与输入不同。

在我将 moment obj 格式化回字符串后,如何获得 2019-08-14T21:38:50-04:00 作为输出?

【问题讨论】:

标签: node.js date timezone momentjs moment-timezone


【解决方案1】:
moment.parseZone("2019-08-14T21:38:50-04:00").format()

moment.parseZone("2019-08-14T21:38:50-04:00").format(moment.ISO_8601())

moment.parseZone("2019-08-14T21:38:50-04:00").format("YYYY-MM-DD[T]HH:mm:ssZ")

以上都将产生"2019-08-14T21:38:50-04:00",与输入字符串相同。

第三次尝试的主要问题是您使用的是hh(12 小时制)而不是HH(24 小时制)。

【讨论】:

    猜你喜欢
    • 2015-01-22
    • 2021-05-22
    • 2018-08-25
    • 1970-01-01
    • 2021-01-11
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多