gpt4 book ai didi

javascript - 在 Node.js 中将 Olson/tz 时区时间转换为世界时间,反之亦然

转载 作者:行者123 更新时间:2023-12-03 08:21:45 27 4
gpt4 key购买 nike

假设我有给定 Olson/tz 数据库时区的时间,例如,1973 年 7 月 1 日 15 点 23 分钟,非洲/马普托。

如何在 node.js 中将其转换为世界时间 UT,反之亦然?我在网上看到过一些库,但文档不清楚。欢迎提供完整的代码示例。

最佳答案

使用moment.jsmoment-timezone ,并假设采用 ISO8601 格式(您未指定)。

加载node.js

(网络浏览器可以跳过此步骤)

npm install moment-timezone
var moment = require('moment-timezone');

从本地时间转换为 UTC

var m = moment.tz("1973-07-01T15:23", "Africa/Maputo");
var s = m.toISOString(); // "1973-07-01T13:23:00.000Z"

var m = moment.tz("1973-07-01T15:23", "Africa/Maputo");
var s = m.utc().format(); // "1973-07-01T13:23:00.000+00:00"

如果您只是通过 API 发送结果或将其保存在数据库中,第一种形式更加紧凑并且最简单。第二种形式是使用 utc 函数的示例,如果您打算将参数传递给 format 以生成不同格式的字符串,或者如果您打算调用 format 之外的其他函数。

从 UTC 转换为本地时间

var m = moment.utc("1973-07-01T13:23").tz("Africa/Maputo");
var s = m.format(); // "1973-07-01T15:23:00+02:00"

var m = moment("1973-07-01T13:23:00.000Z").tz("Africa/Maputo");
var s = m.format(); // "1973-07-01T15:23:00+02:00"

在第一种形式中,我展示了您可以使用 moment.utc 函数来解析不包含偏移信息的字符串并将其解释为 UTC。这是更明确的形式。

第二种形式表明,当存在偏移信息(Z+00:00 形式)时,就会将其考虑在内。虽然中间结果是本地模式下的 moment 对象,但底层时间戳仍然是基于 UTC 的,因此转换到指定时区仍然会给出相同的输出。

关于javascript - 在 Node.js 中将 Olson/tz 时区时间转换为世界时间,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33721338/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com