【问题标题】:Convert timestamp from timezone to UTC timestamp?将时间戳从时区转换为 UTC 时间戳?
【发布时间】:2018-10-24 18:45:37
【问题描述】:

我收到来自第三方 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。

我在这里做错了什么?

【问题讨论】:

    标签: javascript node.js datetime timezone momentjs


    【解决方案1】:

    数字形式的时间戳始终采用 UTC。如果他们出于某种原因手动添加/减去时区偏移量,他们做错了。从那一刻起,您看不到任何变化,因为 UTC 时间戳是同一时刻,无论您代表的本地时间在哪个时区。如果您期望时间戳发生变化,那将代表一个完全不同的时刻时间。

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 2016-01-13
      • 1970-01-01
      • 2021-03-05
      • 2019-01-05
      相关资源
      最近更新 更多