我想使用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月中旬左右),此问题开始出现。事先工作正常。用户位于美国犹他州。
有人可以建议这个问题的根本原因吗?另外,请提出任何解决方法,将非常有帮助。