如何即时保持时间偏移?

时间:2019-08-15 19:33:18

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

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

以db我的时间

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

但是值out(格式化后)总是不同于in。

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

1 个答案:

答案 0 :(得分:0)

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小时制)。