首页 > 解决方案 > 如何从 moment.tz 对象中获取唯一的时区名称?

问题描述

假设您有一个moment对象,已初始化为某个时区,例如“美国/太平洋”(不一定是浏览器的时区)。你如何让“美国/太平洋”这个名字重新出现?我可以获得缩写或偏移量,但如何获得实际的唯一时区?

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"

我想让“美国/太平洋”退出,因为这是全球唯一的名称,不管偏移量或夏令时,或任何东西。

标签: javascriptdatetimetimezonemomentjsmoment-timezone

解决方案


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>


推荐阅读