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
分享笔记