Intl.DateTimeFormat()。resolvedOptions()。timeZone给出了错误的时区值

时间:2019-05-30 10:02:06

标签: javascript datetime

我想使用JavaScript函数Intl.DateTimeFormat().resolvedOptions().timeZone为用户获取IANA格式的时区。但是此功能提供的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)山区时间(美国和加拿大),但是此功能仍将值指定为“ America / Los_Angeles”,这是太平洋标准时间/夏令时。预期值应为“美国/丹佛”。 另一件事是,夏令时调整生效后(即3月中旬左右),此问题开始出现。事先工作正常。用户位于美国犹他州。

有人可以建议这个问题的根本原因吗?另外,请提出任何解决方法,将非常有帮助。

0 个答案:

没有答案