如何获取moment-timezone中当前已配置的默认时区?
获取moment-timezone已设置的默认时区方案
moment-timezone官方暂未公开专门用于读取当前配置默认时区的API,可通过以下两种方式实现需求,结果不受浏览器本地时区影响:
- 直接读取内置属性
调用moment.tz.setDefault()完成配置后,可通过moment.defaultZone.name直接读取到你设置的时区字符串,示例代码如下:
若从未调用过// 配置默认时区 moment.tz.setDefault('America/Sao_Paulo') // 读取配置值 console.log(moment.defaultZone.name) // 输出:America/Sao_PaulosetDefault方法,moment.defaultZone的值为undefined,可以此判断是否自定义过全局默认时区。 - 基于公开API间接获取
若担心直接读取非公开内置属性存在版本兼容风险,可通过新建moment实例调用tz()方法获取当前生效的全局时区:console.log(moment().tz()) // 输出当前配置的默认时区:America/Sao_Paulo
注意:以上两种方式返回的结果均为你主动配置的全局时区,和
moment.tz.guess()返回的用户本地时区结果完全独立。
内容的提问来源于stack exchange,提问作者Mauricio Soares
相关产品推荐
相关产品推荐

