我从第三方 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。
我在这里做错了什么?
最佳答案
数字形式的时间戳始终采用 UTC 格式。如果他们出于某种原因手动添加/减去时区偏移量,那么他们就做错了。您不会看到任何时刻的变化,因为无论您代表的本地时间等效于哪个时区,UTC 时间戳都是相同的时刻。如果您预计时间戳会发生变化,那将代表完全不同的时刻。
关于javascript - 将时间戳从时区转换为 UTC 时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52975985/