runoops.com

moment-timezone 的时区转换常用方法

moment-timezone用于做时间时区的附加与转换,比较常用的方法:

  • 给定一个时间,把这个时间加上时区
  • 给定一个时间,把这个时间转成指定时区的时间
  • 获取指定时区的当前时间

例子:

const moment = require('moment-timezone');

let time = "2023-11-27 22:00";
console.log(moment.tz(time, "America/New_York").format()); //给已知时间加上时区,保持时间不变
console.log(moment(time).tz("America/New_York",true).format());  //结果同上,仅更新时区(和偏移量),保持时间不变
console.log(moment(time).tz("America/New_York").format());  //将已知时间转换到指定时区的时间(会更改时区并更新偏移量)

结果:

2023-11-27T22:00:00-05:00
2023-11-27T22:00:00-05:00
2023-11-27T09:00:00-05:00

moment-timezone会自动区分冬令时和夏令时的交替:比如改下时间到9月份(夏令时),时区会自动切换成西4区。

time = "2023-09-27 23:00";
console.log(moment.tz(time, "America/New_York").format()); //给已知时间加上时区,保持时间不变
console.log(moment(time).tz("America/New_York").format());  //已知时间转换到指定时区的时间(会更改时区并更新偏移量)
console.log(moment().tz("America/New_York").format()); //获取指定时区的当前时间

结果:

2023-09-27T23:00:00-04:00
2023-09-27T11:00:00-04:00
2023-09-27T10:50:02-04:00

Captcha Code

0 笔记

分享笔记

Inline Feedbacks
View all notes