指定的时区无效:US/Alaska、US/Arizona、US/Mountain、US/Central 等错误 Chrome 但在 Mozilla 中工作

Invalid time zone specified: US/Alaska, US/Arizona, US/Mountain, US/Central etc error in Chrome but working in Mozilla

我正在尝试将时间戳转换为不同时区的本地时间,发现某些时区在 Chrome (v76.0.38) 中不受支持,但在 Mozilla (v68.0.2) 中工作正常。

  let d = new Date(1567083463);
  let n = d.toLocaleString('en-GB', { timeZone: "US/Arizona" });
  

Uncaught RangeError: Invalid time zone specified: US/Arizona

at Date.toLocaleString ()

其他几个时区也抛出同样的错误

US/Alaska US/Mountain US/Central US/East-Indiana

如其网站所述,这些时区得到官方支持 Chrome Supported Time Zone Values

该页面描述了另一个google产品支持的时区,不是Chrome

参考MDN's documentation on toLocaleString:

timeZone
The time zone to use. The only value implementations must recognize is "UTC"; the default is the runtime's default time zone. Implementations may also recognize the time zone names of the IANA time zone database, such as "Asia/Shanghai", "Asia/Kolkata", "America/New_York".

可以在 IANA link 找到有效的时区,或者您可以使用 Wikipedia: List of tz database time zones。您会注意到所有 "US/*" 时区都已 弃用 。仅使用来自维基百科页面的 Canonical 条目,例如:

  • America/New_York
  • America/Denver
  • America/Chicago

等等