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 的浏览器中加载。
另请参阅
Intl.Locale
- IANA 时区数据库 在维基百科上