javascript - 如何从 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"
我想让“美国/太平洋”退出,因为这是全球唯一的名称,不管偏移量或夏令时,或任何东西。
解决方案
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>