如何检索当前时刻的默认时区



如果我用moment.tz.setDefault()设置默认时刻时区,有没有办法稍后检索当前默认时区?

示例:

const moment = require('moment-timezone');
moment.tz.setDefault('Asia/Tokyo');
console.log(moment.tz.getDefault()); // TypeError: moment.tz.getDefault is not a function
console.log(moment.tz.default);      // undefined
console.log(moment.tz.guess());      // America/New_York (my local timezone)
console.log(moment.tz.guess(true));  // America/New_York
// => I want something that will return "Asia/Tokyo"

这与建议的重复不同,因为我不想要浏览器的时区,我特别想知道moment.tz.setDefault()设置为什么(如果有的话(。

您可以通过moment.defaultZone.name:实现

const moment = require('moment-timezone');
moment.tz.setDefault('Asia/Tokyo');
console.log(moment.defaultZone.name)

输出:

Asia/Tokyo

在@Kip评论后更新

  • 如果未设置默认时区,则moment.defaultZone未定义,因此使用moment.defaultZone?.name是安全的
  • 使用文档功能的另一种方法是moment().format('ZZ'),它在东京时间返回"+0900"

最新更新