Intl.DateTimeFormat (). ResolvedOptions (). TimeZone дает неправильное значение часового пояса - PullRequest
2 голосов
/ 30 мая 2019

Я хочу получить часовой пояс в форме 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», которое является тихоокеанским стандартным / летним часовым поясом. В то время как ожидаемое значение должно быть «Америка / Денвер». Другое дело, что эта проблема начала возникать после того, как корректировка перехода на летнее время появилась в картине, то есть примерно в середине марта. До этого все работало нормально. Пользователь находится в штате Юта, США.

Может кто-нибудь предложить возможные основные причины этой проблемы? Также, пожалуйста, предложите любой обходной путь, будет очень полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...