我如何在瞬间保持时间偏移?

how do I maintain time offsets in moment?

我正在尝试 add/subtract 天从时刻对象开始。但是,我遇到的问题是时间偏移与服务器的本地时间不同。

在 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

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

如何将 moment obj 格式化回字符串后输出 2019-08-14T21:38:50-04:00?

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