The getTimeZones() method of Intl.Locale instances returns a list of supported time zones for this locale.
Note: In some versions of some browsers, this method was implemented as an accessor property called timeZones. However, because it returns a new array on each access, it is now implemented as a method to prevent the situation of locale.timeZones === locale.timeZones returning false. Check the browser compatibility table for details.
Syntax
getTimeZones()
Parameters
None.
Return value
An array of strings representing supported time zones for the associated Locale, where each value is an IANA time zone canonical name, sorted in alphabetical order. If the locale identifier does not contain a region subtag, the returned value is undefined.
Some browsers (Firefox) override these legacy names, while others don't (Safari and Chrome). For more information, check the CLDR database. (IANA names are marked with "_iana", if different.) There is an effort in TC39 to properly handle these canonical identifiers, which also contains links to related CLDR issues.
Examples
Obtaining supported time zones
List supported time zones for a given Locale.
const arEG = new Intl.Locale("ar-EG");
console.log(arEG.getTimeZones()); // ["Africa/Cairo"]
const jaJP = new Intl.Locale("ja-JP");
console.log(jaJP.getTimeZones()); // ["Asia/Tokyo"]
const ar = new Intl.Locale("ar");
console.log(ar.getTimeZones()); // undefined