将时间戳从时区转换为UTC时间戳吗?

时间:2018-10-24 18:45:37

标签: javascript node.js datetime timezone momentjs

我从第三方API收到一个时间戳,看起来像:1540388730994。但是,我得知此时间戳位于'Europe/Amsterdam'时区。

由于我们将所有日期存储在UTC中,因此我需要将此时间戳转换为UTC。

这在JavaScript中怎么可能?

到目前为止,我已经尝试过:

const timestamp = 1540388730994

const timestampInUTC = moment.tz(timestamp, 'Europe/Amsterdam').utc().valueOf()

console.log(timestamp, timestampInUTC)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.21/moment-timezone-with-data-2012-2022.min.js"></script>

但是,您可以清楚地看到两个输出时间戳是相同的,而我希望转换可以减去1-2小时,因为阿姆斯特丹时区是GMT + 2。

我在这里做什么错了?

1 个答案:

答案 0 :(得分:3)

数字时间戳记在UTC中总是 。如果他们出于某种原因手动添加/减去了时区偏移量,则他们做错了。您不会看到瞬间的变化,因为UTC时间戳是相同的时刻,无论您表示的本地时区是什么时区。如果您希望时间戳发生变化,那么它将表示一个完全不同的时刻。时间。

相关问题