Как получить уникальное имя часового пояса из объекта 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"

Я хочу вернуть «США/Тихоокеанский регион», так как это глобально уникальное имя, независимо от смещения, перехода на летнее время или чего-либо еще.


person Luke Ehresman    schedule 15.10.2019    source источник


Ответы (1)


Вы можете получить имя часового пояса, назначенного экземпляру момента, используя 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>

person benvc    schedule 15.10.2019