在Node.js中将Olson/tz时区时间转换为世界时,反之亦然
Convert Olson/tz timezone time to universal time and vice-versa in Node.js
假设我有时间访问给定的Olson/tz数据库时区,例如,1973年7月1日,非洲/马普托,时间为15时23分。
如何在node.js
中将其转换为世界时UT,反之亦然?我在网上看过一些图书馆,但文件不清楚。欢迎提供完整的代码示例。
使用moment.js和moment时区,并假设ISO8601格式(您没有指定)。
加载node.js
(web浏览器可以跳过此步骤)
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
形式)时,将其考虑在内。尽管中间结果是本地模式下的矩对象,但底层时间戳仍然是基于UTC的,因此转换到指定时区仍然提供相同的输出。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何将TypeScript对象转换为普通对象
- 检测个位数整数时正在转换毫秒
- 从javascript到jquery的转换
- DOM事件通过JSON转换为java
- 将圆柱体转换为弯管
- 在OpenNI中将Zigfu关节位置从真实世界转换为类似投影的位置
- 将三维世界矢量转换为模型视图矩阵
- 在Node.js中将Olson/tz时区时间转换为世界时,反之亦然
- 在ThreeJS中将2D鼠标坐标转换为世界XZ坐标