如何从 moment.tz 对象中获取唯一的时区名称?

How do I get the unique timezone name out of a moment.tz object?

假设您有一个 moment 对象,初始化为某个时区,例如 "US/Pacific"(不一定是浏览器的时区)。您如何取回 "US/Pacific" 名称?我可以获得缩写或偏移量,但如何获得实际的唯一时区?

var m = moment.tz("US/Pacific");
console.log(m.zoneAbbr());  //  "PDT"
console.log(m.zoneName());  //  "PDT"
console.log(m.format("Z"));  //  "-07:00"
console.log(m.format("ZZ"));  //  "-0700"
console.log(m.format("z"));  //  "PDT"
console.log(m.format("zz"));  //  "PDT"

我想让 "US/Pacific" 退出,因为这是全球唯一的名称,不管偏移量或夏令时,或任何东西。

您可以使用不带任何参数的 tz() 方法获取分配给时刻实例的时区名称。

const dt = moment().tz('US/Pacific');
console.log(dt.tz());
// US/Pacific
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.23/moment-timezone-with-data.js"></script>