Я хочу получить часовой пояс в форме IANA для пользователя, используя функцию javascript Intl.DateTimeFormat().resolvedOptions().timeZone
. Но эта функция дает неверное значение часового пояса IANA.
Я использовал функцию библиотеки moment.js moment.tz.guess(true)
. Но это также дает такое же неверное значение. При дальнейшем анализе я узнал, что здесь также используется та же собственная функция JS Intl.DateTimeFormat().resolvedOptions().timeZone
внутренне
var timeZone = moment.tz.guess(); // "America/Los_Angeles"
или
var timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; // "America/Los_Angeles"
Несмотря на то, что пользователь установил системное время (UTC - 07:00) Mountain Time (США и Канада), тем не менее, эта функция дает значение как «America / Los_Angeles», которое является тихоокеанским стандартным / летним часовым поясом. В то время как ожидаемое значение должно быть «Америка / Денвер».
Другое дело, что эта проблема начала возникать после того, как корректировка перехода на летнее время появилась в картине, то есть примерно в середине марта. До этого все работало нормально. Пользователь находится в штате Юта, США.
Может кто-нибудь предложить возможные основные причины этой проблемы? Также, пожалуйста, предложите любой обходной путь, будет очень полезно.