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

How to retrieve current moment default time zone

如果我使用 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'),在东京时间 returns "+0900"