6

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

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

未捕获的 RangeError:指定的时区无效:美国/亚利桑那州

在 Date.toLocaleString ()

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

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

官方支持这些时区,如其网站 Chrome 支持的时区值中所述

4

1 回答 1

17

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

参考MDN 的文档toLocaleString

timeZone
要使用的时区。实现必须识别的唯一值是“UTC”;默认值是运行时的默认时区。实现还可以识别IANA 时区数据库的时区名称,例如“Asia/Shanghai”、“Asia/Kolkata”、“America/New_York”。

可以在该 IANA 链接上找到有效时区,或者您可以使用Wikipedia: List of tz database time zone。您会注意到所有“US/*”时区都已弃用。仅使用Wikipedia 页面中的规范条目,例如:

  • 美国/纽约
  • 美国/丹佛
  • 美国/芝加哥

等等

于 2019-08-29T13:34:52.730 回答