Intl.Locale.prototype.getTimeZones()

可用性受限

此功能不是基线功能,因为它在一些最广泛使用的浏览器中无法正常工作。

getTimeZones() 方法是 Intl.Locale 实例的方法,用于返回此区域设置支持的时区列表。

注意:在某些版本的某些浏览器中,此方法被实现为名为 timeZones 的访问器属性。但是,由于它在每次访问时都会返回一个新数组,因此现在将其实现为方法,以防止 locale.timeZones === locale.timeZones 返回 false 的情况。有关详细信息,请查看 浏览器兼容性表

语法

js
getTimeZones()

参数

无。

返回值

一个字符串数组,表示与 Locale 关联的支持时区,其中每个值都是一个 IANA 时区规范名称,按字母顺序排序。如果区域设置标识符不包含区域子标签,则返回值为 undefined

请注意,虽然 IANA 数据库会不时更改,但 Unicode CLDR 数据库(浏览器使用)出于稳定性目的而保留旧的时区名称。例如,以下是一些值得注意的名称更改

当前 IANA 名称 CDLR 数据库
America/Argentina/Buenos_Aires America/Buenos_Aires
Asia/Kolkata Asia/Calcutta
Asia/Ho_Chi_Minh Asia/Saigon
Europe/Kyiv Europe/Kiev

某些浏览器(Firefox)会覆盖这些旧名称,而另一些浏览器则不会(Safari 和 Chrome)。有关更多信息,请查看 CLDR 数据库。(如果不同,IANA 名称将标记为 "_iana"。)TC39 正在努力正确处理这些规范标识符,其中还包含与相关 CLDR 问题的链接。

示例

获取支持的时区

列出给定 Locale 支持的时区。

js
const arEG = new Intl.Locale("ar-EG");
console.log(arEG.getTimeZones()); // ["Africa/Cairo"]
js
const jaJP = new Intl.Locale("ja-JP");
console.log(jaJP.getTimeZones()); // ["Asia/Tokyo"]
js
const ar = new Intl.Locale("ar");
console.log(ar.getTimeZones()); // undefined

规范

规范
Intl 区域设置信息提案
# sec-Intl.Locale.prototype.getTimeZones

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅