moment.timezone
是moment
额外封装的一个插件,专门用于修改时区,具有部分moment的方法。
一、安装
npm install moment-timezone
//或
yarn add moment-timezone
二、引入
import moment from 'moment-timezone'
上一篇文章中已经讲解了
moment
的用法,这里的引入的moment
是moment-timezone
的实例,如果同一文件下同时引入moment
和moment-timezone
,则需要区别实例名字。
例如:
// 这里使用momentTz是为了区别于moment的实例,你也可以取其他名字作为moment-timezone的实例
import momentTz from 'moment-timezone'
const moment = require('moment')
三、使用
import moment from 'moment-timezone'
moment().tz("America/Los_Angeles").format('YYYY-MM-DD HH:mm:ss')//这里拿到的就是美国洛杉矶的当地时间
moment('2022-11-01').tz("America/Los_Angeles").format('YYYY-MM-DD HH:mm:ss');//返回2022-10-31 09:00:00,洛杉矶与北京的时差为16小时
- 提示:以下两种书写方式返回的不一样
const time1 = moment.tz("2013-11-18 11:55", "America/Los_Angeles");
const time2 = moment("2013-11-18 11:55").tz("America/Los_Angeles");
time1 返回的是这个时间附带上洛杉矶时区名字(并没有切换时间到洛杉矶时区)
time2 返回的是切换到洛杉矶时区后的时间
四、默认时区
- 更换默认时区,之后获得的时间都是重置之后时区的时间
moment.tz.setDefault("America/New_York")
moment().format('YYYY-MM-DD HH:mm:ss')//返回的是纽约的当地时间
- 想要恢复当地的默认时区,则不带参数调用
moment.tz.setDefault()
五、可选时区
官网提供了能转换的所有时区,以地图的形式展示。