如何在 javascript 中获得所有时区的列表

我正在开发一个使用 response/redux 的应用程序,我开始使用 做出反应库来格式化消息和日期。

我已经能够在 <FormattedDate>标签中显示它所使用的时区。

我想在一个选择所有可能的时区现有的,所以当用户选择一个时区,<FormattedDate>自动更改到该格式。

我不知道如何使用 response-intl 列出所有可能的时区。

我也搜索在谷歌,我没有找到任何内置的 javascript 函数,这样做。

是那条路吗? 我怎样才能得到那份名单?

注意: 不要认为这是同一个问题,因为我不想使用外部库,如果可能的话,如果这是唯一的解决方案,那么我将不得不这样处理... :/

145408 次浏览

The react-intl library's time zone functionality is provided exclusively by the ECMAScript Internationalization API features that are integrated into the browser.

While IANA time zone support is part of this spec, it currently only covers two scenarios:

  • Formating a Date object to a string, converting to a specific time zone in the process.

  • Determining the user's local time zone identifier.

Unfortunately, there is no function defined by the spec for enumerating the list of available time zones.

Additionally, note that support for the two functions it does have is currently limited to a handful of browsers. It will likely be quite some time before these capabilities can be depended upon. The ECMAScript Compatibility Table shows which browsers are supported. Under DateTimeFormat you'll find "resolvedOptions().timeZone defaults to the host environment" and "accepts IANA timezone names" that track these features.

For the future searchers, it's possible to get a list of all timezones using moment-timezone.

import momentTZ from 'moment-timezone';


const defaultTimeZone = momentTZ.tz.guess();
const timeZonesList = momentTZ.tz.names();

I realize my answer is late, but if you are using Intl and you care about time zones, and you're facing the web, then you are almost certainly going to need https://github.com/yahoo/date-time-format-timezone. Since you will have this in your project anyway, you can retrieve the time zone data from inside the polyfill even if you're not using the polyfill.

Everyone is using the IANA database so you should get consistent results.

I recently created an array containing all timezones and found that a couple of official timezones were missing from Chromium 71.0.3578.98.

You can see that array in this comment of the bug I reported. For convenience, I've included the array below:

var aryIannaTimeZones = [
'Europe/Andorra',
'Asia/Dubai',
'Asia/Kabul',
'Europe/Tirane',
'Asia/Yerevan',
'Antarctica/Casey',
'Antarctica/Davis',
'Antarctica/DumontDUrville', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068
'Antarctica/Mawson',
'Antarctica/Palmer',
'Antarctica/Rothera',
'Antarctica/Syowa',
'Antarctica/Troll',
'Antarctica/Vostok',
'America/Argentina/Buenos_Aires',
'America/Argentina/Cordoba',
'America/Argentina/Salta',
'America/Argentina/Jujuy',
'America/Argentina/Tucuman',
'America/Argentina/Catamarca',
'America/Argentina/La_Rioja',
'America/Argentina/San_Juan',
'America/Argentina/Mendoza',
'America/Argentina/San_Luis',
'America/Argentina/Rio_Gallegos',
'America/Argentina/Ushuaia',
'Pacific/Pago_Pago',
'Europe/Vienna',
'Australia/Lord_Howe',
'Antarctica/Macquarie',
'Australia/Hobart',
'Australia/Currie',
'Australia/Melbourne',
'Australia/Sydney',
'Australia/Broken_Hill',
'Australia/Brisbane',
'Australia/Lindeman',
'Australia/Adelaide',
'Australia/Darwin',
'Australia/Perth',
'Australia/Eucla',
'Asia/Baku',
'America/Barbados',
'Asia/Dhaka',
'Europe/Brussels',
'Europe/Sofia',
'Atlantic/Bermuda',
'Asia/Brunei',
'America/La_Paz',
'America/Noronha',
'America/Belem',
'America/Fortaleza',
'America/Recife',
'America/Araguaina',
'America/Maceio',
'America/Bahia',
'America/Sao_Paulo',
'America/Campo_Grande',
'America/Cuiaba',
'America/Santarem',
'America/Porto_Velho',
'America/Boa_Vista',
'America/Manaus',
'America/Eirunepe',
'America/Rio_Branco',
'America/Nassau',
'Asia/Thimphu',
'Europe/Minsk',
'America/Belize',
'America/St_Johns',
'America/Halifax',
'America/Glace_Bay',
'America/Moncton',
'America/Goose_Bay',
'America/Blanc-Sablon',
'America/Toronto',
'America/Nipigon',
'America/Thunder_Bay',
'America/Iqaluit',
'America/Pangnirtung',
'America/Atikokan',
'America/Winnipeg',
'America/Rainy_River',
'America/Resolute',
'America/Rankin_Inlet',
'America/Regina',
'America/Swift_Current',
'America/Edmonton',
'America/Cambridge_Bay',
'America/Yellowknife',
'America/Inuvik',
'America/Creston',
'America/Dawson_Creek',
'America/Fort_Nelson',
'America/Vancouver',
'America/Whitehorse',
'America/Dawson',
'Indian/Cocos',
'Europe/Zurich',
'Africa/Abidjan',
'Pacific/Rarotonga',
'America/Santiago',
'America/Punta_Arenas',
'Pacific/Easter',
'Asia/Shanghai',
'Asia/Urumqi',
'America/Bogota',
'America/Costa_Rica',
'America/Havana',
'Atlantic/Cape_Verde',
'America/Curacao',
'Indian/Christmas',
'Asia/Nicosia',
'Asia/Famagusta',
'Europe/Prague',
'Europe/Berlin',
'Europe/Copenhagen',
'America/Santo_Domingo',
'Africa/Algiers',
'America/Guayaquil',
'Pacific/Galapagos',
'Europe/Tallinn',
'Africa/Cairo',
'Africa/El_Aaiun',
'Europe/Madrid',
'Africa/Ceuta',
'Atlantic/Canary',
'Europe/Helsinki',
'Pacific/Fiji',
'Atlantic/Stanley',
'Pacific/Chuuk',
'Pacific/Pohnpei',
'Pacific/Kosrae',
'Atlantic/Faroe',
'Europe/Paris',
'Europe/London',
'Asia/Tbilisi',
'America/Cayenne',
'Africa/Accra',
'Europe/Gibraltar',
'America/Godthab',
'America/Danmarkshavn',
'America/Scoresbysund',
'America/Thule',
'Europe/Athens',
'Atlantic/South_Georgia',
'America/Guatemala',
'Pacific/Guam',
'Africa/Bissau',
'America/Guyana',
'Asia/Hong_Kong',
'America/Tegucigalpa',
'America/Port-au-Prince',
'Europe/Budapest',
'Asia/Jakarta',
'Asia/Pontianak',
'Asia/Makassar',
'Asia/Jayapura',
'Europe/Dublin',
'Asia/Jerusalem',
'Asia/Kolkata',
'Indian/Chagos',
'Asia/Baghdad',
'Asia/Tehran',
'Atlantic/Reykjavik',
'Europe/Rome',
'America/Jamaica',
'Asia/Amman',
'Asia/Tokyo',
'Africa/Nairobi',
'Asia/Bishkek',
'Pacific/Tarawa',
'Pacific/Enderbury',
'Pacific/Kiritimati',
'Asia/Pyongyang',
'Asia/Seoul',
'Asia/Almaty',
'Asia/Qyzylorda',
'Asia/Qostanay', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068
'Asia/Aqtobe',
'Asia/Aqtau',
'Asia/Atyrau',
'Asia/Oral',
'Asia/Beirut',
'Asia/Colombo',
'Africa/Monrovia',
'Europe/Vilnius',
'Europe/Luxembourg',
'Europe/Riga',
'Africa/Tripoli',
'Africa/Casablanca',
'Europe/Monaco',
'Europe/Chisinau',
'Pacific/Majuro',
'Pacific/Kwajalein',
'Asia/Yangon',
'Asia/Ulaanbaatar',
'Asia/Hovd',
'Asia/Choibalsan',
'Asia/Macau',
'America/Martinique',
'Europe/Malta',
'Indian/Mauritius',
'Indian/Maldives',
'America/Mexico_City',
'America/Cancun',
'America/Merida',
'America/Monterrey',
'America/Matamoros',
'America/Mazatlan',
'America/Chihuahua',
'America/Ojinaga',
'America/Hermosillo',
'America/Tijuana',
'America/Bahia_Banderas',
'Asia/Kuala_Lumpur',
'Asia/Kuching',
'Africa/Maputo',
'Africa/Windhoek',
'Pacific/Noumea',
'Pacific/Norfolk',
'Africa/Lagos',
'America/Managua',
'Europe/Amsterdam',
'Europe/Oslo',
'Asia/Kathmandu',
'Pacific/Nauru',
'Pacific/Niue',
'Pacific/Auckland',
'Pacific/Chatham',
'America/Panama',
'America/Lima',
'Pacific/Tahiti',
'Pacific/Marquesas',
'Pacific/Gambier',
'Pacific/Port_Moresby',
'Pacific/Bougainville',
'Asia/Manila',
'Asia/Karachi',
'Europe/Warsaw',
'America/Miquelon',
'Pacific/Pitcairn',
'America/Puerto_Rico',
'Asia/Gaza',
'Asia/Hebron',
'Europe/Lisbon',
'Atlantic/Madeira',
'Atlantic/Azores',
'Pacific/Palau',
'America/Asuncion',
'Asia/Qatar',
'Indian/Reunion',
'Europe/Bucharest',
'Europe/Belgrade',
'Europe/Kaliningrad',
'Europe/Moscow',
'Europe/Simferopol',
'Europe/Kirov',
'Europe/Astrakhan',
'Europe/Volgograd',
'Europe/Saratov',
'Europe/Ulyanovsk',
'Europe/Samara',
'Asia/Yekaterinburg',
'Asia/Omsk',
'Asia/Novosibirsk',
'Asia/Barnaul',
'Asia/Tomsk',
'Asia/Novokuznetsk',
'Asia/Krasnoyarsk',
'Asia/Irkutsk',
'Asia/Chita',
'Asia/Yakutsk',
'Asia/Khandyga',
'Asia/Vladivostok',
'Asia/Ust-Nera',
'Asia/Magadan',
'Asia/Sakhalin',
'Asia/Srednekolymsk',
'Asia/Kamchatka',
'Asia/Anadyr',
'Asia/Riyadh',
'Pacific/Guadalcanal',
'Indian/Mahe',
'Africa/Khartoum',
'Europe/Stockholm',
'Asia/Singapore',
'America/Paramaribo',
'Africa/Juba',
'Africa/Sao_Tome',
'America/El_Salvador',
'Asia/Damascus',
'America/Grand_Turk',
'Africa/Ndjamena',
'Indian/Kerguelen',
'Asia/Bangkok',
'Asia/Dushanbe',
'Pacific/Fakaofo',
'Asia/Dili',
'Asia/Ashgabat',
'Africa/Tunis',
'Pacific/Tongatapu',
'Europe/Istanbul',
'America/Port_of_Spain',
'Pacific/Funafuti',
'Asia/Taipei',
'Europe/Kiev',
'Europe/Uzhgorod',
'Europe/Zaporozhye',
'Pacific/Wake',
'America/New_York',
'America/Detroit',
'America/Kentucky/Louisville',
'America/Kentucky/Monticello',
'America/Indiana/Indianapolis',
'America/Indiana/Vincennes',
'America/Indiana/Winamac',
'America/Indiana/Marengo',
'America/Indiana/Petersburg',
'America/Indiana/Vevay',
'America/Chicago',
'America/Indiana/Tell_City',
'America/Indiana/Knox',
'America/Menominee',
'America/North_Dakota/Center',
'America/North_Dakota/New_Salem',
'America/North_Dakota/Beulah',
'America/Denver',
'America/Boise',
'America/Phoenix',
'America/Los_Angeles',
'America/Anchorage',
'America/Juneau',
'America/Sitka',
'America/Metlakatla',
'America/Yakutat',
'America/Nome',
'America/Adak',
'Pacific/Honolulu',
'America/Montevideo',
'Asia/Samarkand',
'Asia/Tashkent',
'America/Caracas',
'Asia/Ho_Chi_Minh',
'Pacific/Efate',
'Pacific/Wallis',
'Pacific/Apia',
'Africa/Johannesburg'
];


let date = new Date;
aryIannaTimeZones.forEach((timeZone) =>
{
let strTime = date.toLocaleString("en-US", {timeZone: `${timeZone}`});
console.log(timeZone, strTime);
});

If you're like me, in wondering why there are so many timezones, check out this question.

UPDATE 2022-06-08:

If you only need a full list of time zones that your environment supports, you can now acquire that array using Intl.supportedValuesOf(), like this:

let ary = Intl.supportedValuesOf('timeZone');

Whether that list is complete or not, will depend on your environment.

In the snippet below, I replace that array (from the first snippet) with Intl.supportedValuesOf('timeZone'):

var aryIannaTimeZones = Intl.supportedValuesOf('timeZone');


let date = new Date;
aryIannaTimeZones.forEach((timeZone) =>
{
let strTime = date.toLocaleString("en-US",{timeZone: `${timeZone}`});
console.log(timeZone, strTime);
});

Here's a comparison of the custom array versus Intl.supportedValuesOf('timeZone'):

let ary1 = [
'Europe/Andorra',
'Asia/Dubai',
'Asia/Kabul',
'Europe/Tirane',
'Asia/Yerevan',
'Antarctica/Casey',
'Antarctica/Davis',
'Antarctica/DumontDUrville', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068
'Antarctica/Mawson',
'Antarctica/Palmer',
'Antarctica/Rothera',
'Antarctica/Syowa',
'Antarctica/Troll',
'Antarctica/Vostok',
'America/Argentina/Buenos_Aires',
'America/Argentina/Cordoba',
'America/Argentina/Salta',
'America/Argentina/Jujuy',
'America/Argentina/Tucuman',
'America/Argentina/Catamarca',
'America/Argentina/La_Rioja',
'America/Argentina/San_Juan',
'America/Argentina/Mendoza',
'America/Argentina/San_Luis',
'America/Argentina/Rio_Gallegos',
'America/Argentina/Ushuaia',
'Pacific/Pago_Pago',
'Europe/Vienna',
'Australia/Lord_Howe',
'Antarctica/Macquarie',
'Australia/Hobart',
'Australia/Currie',
'Australia/Melbourne',
'Australia/Sydney',
'Australia/Broken_Hill',
'Australia/Brisbane',
'Australia/Lindeman',
'Australia/Adelaide',
'Australia/Darwin',
'Australia/Perth',
'Australia/Eucla',
'Asia/Baku',
'America/Barbados',
'Asia/Dhaka',
'Europe/Brussels',
'Europe/Sofia',
'Atlantic/Bermuda',
'Asia/Brunei',
'America/La_Paz',
'America/Noronha',
'America/Belem',
'America/Fortaleza',
'America/Recife',
'America/Araguaina',
'America/Maceio',
'America/Bahia',
'America/Sao_Paulo',
'America/Campo_Grande',
'America/Cuiaba',
'America/Santarem',
'America/Porto_Velho',
'America/Boa_Vista',
'America/Manaus',
'America/Eirunepe',
'America/Rio_Branco',
'America/Nassau',
'Asia/Thimphu',
'Europe/Minsk',
'America/Belize',
'America/St_Johns',
'America/Halifax',
'America/Glace_Bay',
'America/Moncton',
'America/Goose_Bay',
'America/Blanc-Sablon',
'America/Toronto',
'America/Nipigon',
'America/Thunder_Bay',
'America/Iqaluit',
'America/Pangnirtung',
'America/Atikokan',
'America/Winnipeg',
'America/Rainy_River',
'America/Resolute',
'America/Rankin_Inlet',
'America/Regina',
'America/Swift_Current',
'America/Edmonton',
'America/Cambridge_Bay',
'America/Yellowknife',
'America/Inuvik',
'America/Creston',
'America/Dawson_Creek',
'America/Fort_Nelson',
'America/Vancouver',
'America/Whitehorse',
'America/Dawson',
'Indian/Cocos',
'Europe/Zurich',
'Africa/Abidjan',
'Pacific/Rarotonga',
'America/Santiago',
'America/Punta_Arenas',
'Pacific/Easter',
'Asia/Shanghai',
'Asia/Urumqi',
'America/Bogota',
'America/Costa_Rica',
'America/Havana',
'Atlantic/Cape_Verde',
'America/Curacao',
'Indian/Christmas',
'Asia/Nicosia',
'Asia/Famagusta',
'Europe/Prague',
'Europe/Berlin',
'Europe/Copenhagen',
'America/Santo_Domingo',
'Africa/Algiers',
'America/Guayaquil',
'Pacific/Galapagos',
'Europe/Tallinn',
'Africa/Cairo',
'Africa/El_Aaiun',
'Europe/Madrid',
'Africa/Ceuta',
'Atlantic/Canary',
'Europe/Helsinki',
'Pacific/Fiji',
'Atlantic/Stanley',
'Pacific/Chuuk',
'Pacific/Pohnpei',
'Pacific/Kosrae',
'Atlantic/Faroe',
'Europe/Paris',
'Europe/London',
'Asia/Tbilisi',
'America/Cayenne',
'Africa/Accra',
'Europe/Gibraltar',
'America/Godthab',
'America/Danmarkshavn',
'America/Scoresbysund',
'America/Thule',
'Europe/Athens',
'Atlantic/South_Georgia',
'America/Guatemala',
'Pacific/Guam',
'Africa/Bissau',
'America/Guyana',
'Asia/Hong_Kong',
'America/Tegucigalpa',
'America/Port-au-Prince',
'Europe/Budapest',
'Asia/Jakarta',
'Asia/Pontianak',
'Asia/Makassar',
'Asia/Jayapura',
'Europe/Dublin',
'Asia/Jerusalem',
'Asia/Kolkata',
'Indian/Chagos',
'Asia/Baghdad',
'Asia/Tehran',
'Atlantic/Reykjavik',
'Europe/Rome',
'America/Jamaica',
'Asia/Amman',
'Asia/Tokyo',
'Africa/Nairobi',
'Asia/Bishkek',
'Pacific/Tarawa',
'Pacific/Enderbury',
'Pacific/Kiritimati',
'Asia/Pyongyang',
'Asia/Seoul',
'Asia/Almaty',
'Asia/Qyzylorda',
'Asia/Qostanay', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068
'Asia/Aqtobe',
'Asia/Aqtau',
'Asia/Atyrau',
'Asia/Oral',
'Asia/Beirut',
'Asia/Colombo',
'Africa/Monrovia',
'Europe/Vilnius',
'Europe/Luxembourg',
'Europe/Riga',
'Africa/Tripoli',
'Africa/Casablanca',
'Europe/Monaco',
'Europe/Chisinau',
'Pacific/Majuro',
'Pacific/Kwajalein',
'Asia/Yangon',
'Asia/Ulaanbaatar',
'Asia/Hovd',
'Asia/Choibalsan',
'Asia/Macau',
'America/Martinique',
'Europe/Malta',
'Indian/Mauritius',
'Indian/Maldives',
'America/Mexico_City',
'America/Cancun',
'America/Merida',
'America/Monterrey',
'America/Matamoros',
'America/Mazatlan',
'America/Chihuahua',
'America/Ojinaga',
'America/Hermosillo',
'America/Tijuana',
'America/Bahia_Banderas',
'Asia/Kuala_Lumpur',
'Asia/Kuching',
'Africa/Maputo',
'Africa/Windhoek',
'Pacific/Noumea',
'Pacific/Norfolk',
'Africa/Lagos',
'America/Managua',
'Europe/Amsterdam',
'Europe/Oslo',
'Asia/Kathmandu',
'Pacific/Nauru',
'Pacific/Niue',
'Pacific/Auckland',
'Pacific/Chatham',
'America/Panama',
'America/Lima',
'Pacific/Tahiti',
'Pacific/Marquesas',
'Pacific/Gambier',
'Pacific/Port_Moresby',
'Pacific/Bougainville',
'Asia/Manila',
'Asia/Karachi',
'Europe/Warsaw',
'America/Miquelon',
'Pacific/Pitcairn',
'America/Puerto_Rico',
'Asia/Gaza',
'Asia/Hebron',
'Europe/Lisbon',
'Atlantic/Madeira',
'Atlantic/Azores',
'Pacific/Palau',
'America/Asuncion',
'Asia/Qatar',
'Indian/Reunion',
'Europe/Bucharest',
'Europe/Belgrade',
'Europe/Kaliningrad',
'Europe/Moscow',
'Europe/Simferopol',
'Europe/Kirov',
'Europe/Astrakhan',
'Europe/Volgograd',
'Europe/Saratov',
'Europe/Ulyanovsk',
'Europe/Samara',
'Asia/Yekaterinburg',
'Asia/Omsk',
'Asia/Novosibirsk',
'Asia/Barnaul',
'Asia/Tomsk',
'Asia/Novokuznetsk',
'Asia/Krasnoyarsk',
'Asia/Irkutsk',
'Asia/Chita',
'Asia/Yakutsk',
'Asia/Khandyga',
'Asia/Vladivostok',
'Asia/Ust-Nera',
'Asia/Magadan',
'Asia/Sakhalin',
'Asia/Srednekolymsk',
'Asia/Kamchatka',
'Asia/Anadyr',
'Asia/Riyadh',
'Pacific/Guadalcanal',
'Indian/Mahe',
'Africa/Khartoum',
'Europe/Stockholm',
'Asia/Singapore',
'America/Paramaribo',
'Africa/Juba',
'Africa/Sao_Tome',
'America/El_Salvador',
'Asia/Damascus',
'America/Grand_Turk',
'Africa/Ndjamena',
'Indian/Kerguelen',
'Asia/Bangkok',
'Asia/Dushanbe',
'Pacific/Fakaofo',
'Asia/Dili',
'Asia/Ashgabat',
'Africa/Tunis',
'Pacific/Tongatapu',
'Europe/Istanbul',
'America/Port_of_Spain',
'Pacific/Funafuti',
'Asia/Taipei',
'Europe/Kiev',
'Europe/Uzhgorod',
'Europe/Zaporozhye',
'Pacific/Wake',
'America/New_York',
'America/Detroit',
'America/Kentucky/Louisville',
'America/Kentucky/Monticello',
'America/Indiana/Indianapolis',
'America/Indiana/Vincennes',
'America/Indiana/Winamac',
'America/Indiana/Marengo',
'America/Indiana/Petersburg',
'America/Indiana/Vevay',
'America/Chicago',
'America/Indiana/Tell_City',
'America/Indiana/Knox',
'America/Menominee',
'America/North_Dakota/Center',
'America/North_Dakota/New_Salem',
'America/North_Dakota/Beulah',
'America/Denver',
'America/Boise',
'America/Phoenix',
'America/Los_Angeles',
'America/Anchorage',
'America/Juneau',
'America/Sitka',
'America/Metlakatla',
'America/Yakutat',
'America/Nome',
'America/Adak',
'Pacific/Honolulu',
'America/Montevideo',
'Asia/Samarkand',
'Asia/Tashkent',
'America/Caracas',
'Asia/Ho_Chi_Minh',
'Pacific/Efate',
'Pacific/Wallis',
'Pacific/Apia',
'Africa/Johannesburg'];


let ary2 = Intl.supportedValuesOf('timeZone');


let s1 = new Set(ary1);
let s2 = new Set(ary2);


let aryNotInSupportedValuesOf = ary1.filter((timeZone)=>
{
if (!s2.has(timeZone))
{
return timeZone;
}
});


let aryNotInCustomArray = ary2.filter((timeZone)=>
{
if (!s1.has(timeZone))
{
return timeZone;
}
});


if (aryNotInSupportedValuesOf.length > 0)
{
console.log (`These values, that are included in the custom array, are not included in Intl.supportedValuesOf('timeZone'):` ,aryNotInSupportedValuesOf);
}
else
{
console.log(`All values in the custom Array are included in Intl.supportedValuesOf('timeZone')`);
}


if (aryNotInCustomArray.length > 0)
{
console.log (`These values, provided by Intl.supportedValuesOf('timeZone'), are not included in the custom array:`,aryNotInCustomArray);
}
else
{
console.log(`All values in Intl.supportedValuesOf('timeZone') are inclued in the custom array.`);
}

Running the comparison above produces different results in each environment/browser I try. The latest Firefox reveals that numerous time zones have been added to the spec since I originally created that static list. However, other environments (I try) are still missing official time zones that were indeed included in that old list.

As of Jul 5th 2022, despite what's reflected on on caniuse or MDN, I see Intl.supportedValuesOf('timeZone') working in the latest:

  • Chromium
  • Firefox
  • Node (v.18.4.0)

If Intl.supportedValuesOf('timeZone') isn't working in the snippets above, for a browser you're targeting, feel free to include a URL to that issue's bug-tracker in the comments below.

I did not find the list of time-zone through browser javascript so created array of timezone list and used it.

Option 1

Till Dec 25, 2020 in JAVA 11 ZoneRulesProvider.java

Create array/collection and use this without external library

I found 600 sorted TimeZone

'Africa/Abidjan','Africa/Accra','Africa/Addis_Ababa','Africa/Algiers','Africa/Asmara','Africa/Asmera','Africa/Bamako','Africa/Bangui','Africa/Banjul','Africa/Bissau','Africa/Blantyre','Africa/Brazzaville','Africa/Bujumbura','Africa/Cairo','Africa/Casablanca','Africa/Ceuta','Africa/Conakry','Africa/Dakar','Africa/Dar_es_Salaam','Africa/Djibouti','Africa/Douala','Africa/El_Aaiun','Africa/Freetown','Africa/Gaborone','Africa/Harare','Africa/Johannesburg','Africa/Juba','Africa/Kampala','Africa/Khartoum','Africa/Kigali','Africa/Kinshasa','Africa/Lagos','Africa/Libreville','Africa/Lome','Africa/Luanda','Africa/Lubumbashi','Africa/Lusaka','Africa/Malabo','Africa/Maputo','Africa/Maseru','Africa/Mbabane','Africa/Mogadishu','Africa/Monrovia','Africa/Nairobi','Africa/Ndjamena','Africa/Niamey','Africa/Nouakchott','Africa/Ouagadougou','Africa/Porto-Novo','Africa/Sao_Tome','Africa/Timbuktu','Africa/Tripoli','Africa/Tunis','Africa/Windhoek','America/Adak','America/Anchorage','America/Anguilla','America/Antigua','America/Araguaina','America/Argentina/Buenos_Aires','America/Argentina/Catamarca','America/Argentina/ComodRivadavia','America/Argentina/Cordoba','America/Argentina/Jujuy','America/Argentina/La_Rioja','America/Argentina/Mendoza','America/Argentina/Rio_Gallegos','America/Argentina/Salta','America/Argentina/San_Juan','America/Argentina/San_Luis','America/Argentina/Tucuman','America/Argentina/Ushuaia','America/Aruba','America/Asuncion','America/Atikokan','America/Atka','America/Bahia','America/Bahia_Banderas','America/Barbados','America/Belem','America/Belize','America/Blanc-Sablon','America/Boa_Vista','America/Bogota','America/Boise','America/Buenos_Aires','America/Cambridge_Bay','America/Campo_Grande','America/Cancun','America/Caracas','America/Catamarca','America/Cayenne','America/Cayman','America/Chicago','America/Chihuahua','America/Coral_Harbour','America/Cordoba','America/Costa_Rica','America/Creston','America/Cuiaba','America/Curacao','America/Danmarkshavn','America/Dawson','America/Dawson_Creek','America/Denver','America/Detroit','America/Dominica','America/Edmonton','America/Eirunepe','America/El_Salvador','America/Ensenada','America/Fort_Nelson','America/Fort_Wayne','America/Fortaleza','America/Glace_Bay','America/Godthab','America/Goose_Bay','America/Grand_Turk','America/Grenada','America/Guadeloupe','America/Guatemala','America/Guayaquil','America/Guyana','America/Halifax','America/Havana','America/Hermosillo','America/Indiana/Indianapolis','America/Indiana/Knox','America/Indiana/Marengo','America/Indiana/Petersburg','America/Indiana/Tell_City','America/Indiana/Vevay','America/Indiana/Vincennes','America/Indiana/Winamac','America/Indianapolis','America/Inuvik','America/Iqaluit','America/Jamaica','America/Jujuy','America/Juneau','America/Kentucky/Louisville','America/Kentucky/Monticello','America/Knox_IN','America/Kralendijk','America/La_Paz','America/Lima','America/Los_Angeles','America/Louisville','America/Lower_Princes','America/Maceio','America/Managua','America/Manaus','America/Marigot','America/Martinique','America/Matamoros','America/Mazatlan','America/Mendoza','America/Menominee','America/Merida','America/Metlakatla','America/Mexico_City','America/Miquelon','America/Moncton','America/Monterrey','America/Montevideo','America/Montreal','America/Montserrat','America/Nassau','America/New_York','America/Nipigon','America/Nome','America/Noronha','America/North_Dakota/Beulah','America/North_Dakota/Center','America/North_Dakota/New_Salem','America/Ojinaga','America/Panama','America/Pangnirtung','America/Paramaribo','America/Phoenix','America/Port-au-Prince','America/Port_of_Spain','America/Porto_Acre','America/Porto_Velho','America/Puerto_Rico','America/Punta_Arenas','America/Rainy_River','America/Rankin_Inlet','America/Recife','America/Regina','America/Resolute','America/Rio_Branco','America/Rosario','America/Santa_Isabel','America/Santarem','America/Santiago','America/Santo_Domingo','America/Sao_Paulo','America/Scoresbysund','America/Shiprock','America/Sitka','America/St_Barthelemy','America/St_Johns','Amer
ica/St_Kitts','America/St_Lucia','America/St_Thomas','America/St_Vincent','America/Swift_Current','America/Tegucigalpa','America/Thule','America/Thunder_Bay','America/Tijuana','America/Toronto','America/Tortola','America/Vancouver','America/Virgin','America/Whitehorse','America/Winnipeg','America/Yakutat','America/Yellowknife','Antarctica/Casey','Antarctica/Davis','Antarctica/DumontDUrville','Antarctica/Macquarie','Antarctica/Mawson','Antarctica/McMurdo','Antarctica/Palmer','Antarctica/Rothera','Antarctica/South_Pole','Antarctica/Syowa','Antarctica/Troll','Antarctica/Vostok','Arctic/Longyearbyen','Asia/Aden','Asia/Almaty','Asia/Amman','Asia/Anadyr','Asia/Aqtau','Asia/Aqtobe','Asia/Ashgabat','Asia/Ashkhabad','Asia/Atyrau','Asia/Baghdad','Asia/Bahrain','Asia/Baku','Asia/Bangkok','Asia/Barnaul','Asia/Beirut','Asia/Bishkek','Asia/Brunei','Asia/Calcutta','Asia/Chita','Asia/Choibalsan','Asia/Chongqing','Asia/Chungking','Asia/Colombo','Asia/Dacca','Asia/Damascus','Asia/Dhaka','Asia/Dili','Asia/Dubai','Asia/Dushanbe','Asia/Famagusta','Asia/Gaza','Asia/Harbin','Asia/Hebron','Asia/Ho_Chi_Minh','Asia/Hong_Kong','Asia/Hovd','Asia/Irkutsk','Asia/Istanbul','Asia/Jakarta','Asia/Jayapura','Asia/Jerusalem','Asia/Kabul','Asia/Kamchatka','Asia/Karachi','Asia/Kashgar','Asia/Kathmandu','Asia/Katmandu','Asia/Khandyga','Asia/Kolkata','Asia/Krasnoyarsk','Asia/Kuala_Lumpur','Asia/Kuching','Asia/Kuwait','Asia/Macao','Asia/Macau','Asia/Magadan','Asia/Makassar','Asia/Manila','Asia/Muscat','Asia/Nicosia','Asia/Novokuznetsk','Asia/Novosibirsk','Asia/Omsk','Asia/Oral','Asia/Phnom_Penh','Asia/Pontianak','Asia/Pyongyang','Asia/Qatar','Asia/Qostanay','Asia/Qyzylorda','Asia/Rangoon','Asia/Riyadh','Asia/Saigon','Asia/Sakhalin','Asia/Samarkand','Asia/Seoul','Asia/Shanghai','Asia/Singapore','Asia/Srednekolymsk','Asia/Taipei','Asia/Tashkent','Asia/Tbilisi','Asia/Tehran','Asia/Tel_Aviv','Asia/Thimbu','Asia/Thimphu','Asia/Tokyo','Asia/Tomsk','Asia/Ujung_Pandang','Asia/Ulaanbaatar','Asia/Ulan_Bator','Asia/Urumqi','Asia/Ust-Nera','Asia/Vientiane','Asia/Vladivostok','Asia/Yakutsk','Asia/Yangon','Asia/Yekaterinburg','Asia/Yerevan','Atlantic/Azores','Atlantic/Bermuda','Atlantic/Canary','Atlantic/Cape_Verde','Atlantic/Faeroe','Atlantic/Faroe','Atlantic/Jan_Mayen','Atlantic/Madeira','Atlantic/Reykjavik','Atlantic/South_Georgia','Atlantic/St_Helena','Atlantic/Stanley','Australia/ACT','Australia/Adelaide','Australia/Brisbane','Australia/Broken_Hill','Australia/Canberra','Australia/Currie','Australia/Darwin','Australia/Eucla','Australia/Hobart','Australia/LHI','Australia/Lindeman','Australia/Lord_Howe','Australia/Melbourne','Australia/NSW','Australia/North','Australia/Perth','Australia/Queensland','Australia/South','Australia/Sydney','Australia/Tasmania','Australia/Victoria','Australia/West','Australia/Yancowinna','Brazil/Acre','Brazil/DeNoronha','Brazil/East','Brazil/West','CET','CST6CDT','Canada/Atlantic','Canada/Central','Canada/Eastern','Canada/Mountain','Canada/Newfoundland','Canada/Pacific','Canada/Saskatchewan','Canada/Yukon','Chile/Continental','Chile/EasterIsland','Cuba','EET','EST5EDT','Egypt','Eire','Etc/GMT','Etc/GMT+0','Etc/GMT+1','Etc/GMT+10','Etc/GMT+11','Etc/GMT+12','Etc/GMT+2','Etc/GMT+3','Etc/GMT+4','Etc/GMT+5','Etc/GMT+6','Etc/GMT+7','Etc/GMT+8','Etc/GMT+9','Etc/GMT-0','Etc/GMT-1','Etc/GMT-10','Etc/GMT-11','Etc/GMT-12','Etc/GMT-13','Etc/GMT-14','Etc/GMT-2','Etc/GMT-3','Etc/GMT-4','Etc/GMT-5','Etc/GMT-6','Etc/GMT-7','Etc/GMT-8','Etc/GMT-9','Etc/GMT0','Etc/Greenwich','Etc/UCT','Etc/UTC','Etc/Universal','Etc/Zulu','Europe/Amsterdam','Europe/Andorra','Europe/Astrakhan','Europe/Athens','Europe/Belfast','Europe/Belgrade','Europe/Berlin','Europe/Bratislava','Europe/Brussels','Europe/Bucharest','Europe/Budapest','Europe/Busingen','Europe/Chisinau','Europe/Copenhagen','Europe/Dublin','Europe/Gibraltar','Europe/Guernsey','Europe/Helsinki','Europe/Isle_of_Man','Europe/Istanbul','Europe/Jersey','Europe/Kaliningrad','Europe/Kiev','Europe/Kirov','Europe/Lisbon','Europe/Ljubljana','Europe/London','Europe/Luxembourg','Europe/Madrid','Europe/Malta','Europe/Mariehamn',
'Europe/Minsk','Europe/Monaco','Europe/Moscow','Europe/Nicosia','Europe/Oslo','Europe/Paris','Europe/Podgorica','Europe/Prague','Europe/Riga','Europe/Rome','Europe/Samara','Europe/San_Marino','Europe/Sarajevo','Europe/Saratov','Europe/Simferopol','Europe/Skopje','Europe/Sofia','Europe/Stockholm','Europe/Tallinn','Europe/Tirane','Europe/Tiraspol','Europe/Ulyanovsk','Europe/Uzhgorod','Europe/Vaduz','Europe/Vatican','Europe/Vienna','Europe/Vilnius','Europe/Volgograd','Europe/Warsaw','Europe/Zagreb','Europe/Zaporozhye','Europe/Zurich','GB','GB-Eire','GMT','GMT0','Greenwich','Hongkong','Iceland','Indian/Antananarivo','Indian/Chagos','Indian/Christmas','Indian/Cocos','Indian/Comoro','Indian/Kerguelen','Indian/Mahe','Indian/Maldives','Indian/Mauritius','Indian/Mayotte','Indian/Reunion','Iran','Israel','Jamaica','Japan','Kwajalein','Libya','MET','MST7MDT','Mexico/BajaNorte','Mexico/BajaSur','Mexico/General','NZ','NZ-CHAT','Navajo','PRC','PST8PDT','Pacific/Apia','Pacific/Auckland','Pacific/Bougainville','Pacific/Chatham','Pacific/Chuuk','Pacific/Easter','Pacific/Efate','Pacific/Enderbury','Pacific/Fakaofo','Pacific/Fiji','Pacific/Funafuti','Pacific/Galapagos','Pacific/Gambier','Pacific/Guadalcanal','Pacific/Guam','Pacific/Honolulu','Pacific/Johnston','Pacific/Kiritimati','Pacific/Kosrae','Pacific/Kwajalein','Pacific/Majuro','Pacific/Marquesas','Pacific/Midway','Pacific/Nauru','Pacific/Niue','Pacific/Norfolk','Pacific/Noumea','Pacific/Pago_Pago','Pacific/Palau','Pacific/Pitcairn','Pacific/Pohnpei','Pacific/Ponape','Pacific/Port_Moresby','Pacific/Rarotonga','Pacific/Saipan','Pacific/Samoa','Pacific/Tahiti','Pacific/Tarawa','Pacific/Tongatapu','Pacific/Truk','Pacific/Wake','Pacific/Wallis','Pacific/Yap','Poland','Portugal','ROK','Singapore','SystemV/AST4','SystemV/AST4ADT','SystemV/CST6','SystemV/CST6CDT','SystemV/EST5','SystemV/EST5EDT','SystemV/HST10','SystemV/MST7','SystemV/MST7MDT','SystemV/PST8','SystemV/PST8PDT','SystemV/YST9','SystemV/YST9YDT','Turkey','UCT','US/Alaska','US/Aleutian','US/Arizona','US/Central','US/East-Indiana','US/Eastern','US/Hawaii','US/Indiana-Starke','US/Michigan','US/Mountain','US/Pacific','US/Pacific-New','US/Samoa','UTC','Universal','W-SU','WET','Zulu'

Option 2

OS Valid 441 timezone, Extracted from Mac sudo systemsetup -listtimezones

'Africa/Abidjan','Africa/Accra','Africa/Addis_Ababa','Africa/Algiers','Africa/Asmara','Africa/Bamako','Africa/Bangui','Africa/Banjul','Africa/Bissau','Africa/Blantyre','Africa/Brazzaville','Africa/Bujumbura','Africa/Cairo','Africa/Casablanca','Africa/Ceuta','Africa/Conakry','Africa/Dakar','Africa/Dar_es_Salaam','Africa/Djibouti','Africa/Douala','Africa/El_Aaiun','Africa/Freetown','Africa/Gaborone','Africa/Harare','Africa/Johannesburg','Africa/Juba','Africa/Kampala','Africa/Khartoum','Africa/Kigali','Africa/Kinshasa','Africa/Lagos','Africa/Libreville','Africa/Lome','Africa/Luanda','Africa/Lubumbashi','Africa/Lusaka','Africa/Malabo','Africa/Maputo','Africa/Maseru','Africa/Mbabane','Africa/Mogadishu','Africa/Monrovia','Africa/Nairobi','Africa/Ndjamena','Africa/Niamey','Africa/Nouakchott','Africa/Ouagadougou','Africa/Porto-Novo','Africa/Sao_Tome','Africa/Tripoli','Africa/Tunis','Africa/Windhoek','America/Adak','America/Anchorage','America/Anguilla','America/Antigua','America/Araguaina','America/Argentina/Buenos_Aires','America/Argentina/Catamarca','America/Argentina/Cordoba','America/Argentina/Jujuy','America/Argentina/La_Rioja','America/Argentina/Mendoza','America/Argentina/Rio_Gallegos','America/Argentina/Salta','America/Argentina/San_Juan','America/Argentina/San_Luis','America/Argentina/Tucuman','America/Argentina/Ushuaia','America/Aruba','America/Asuncion','America/Atikokan','America/Bahia','America/Bahia_Banderas','America/Barbados','America/Belem','America/Belize','America/Blanc-Sablon','America/Boa_Vista','America/Bogota','America/Boise','America/Cambridge_Bay','America/Campo_Grande','America/Cancun','America/Caracas','America/Cayenne','America/Cayman','America/Chicago','America/Chihuahua','America/Costa_Rica','America/Creston','America/Cuiaba','America/Curacao','America/Danmarkshavn','America/Dawson','America/Dawson_Creek','America/Denver','America/Detroit','America/Dominica','America/Edmonton','America/Eirunepe','America/El_Salvador','America/Fort_Nelson','America/Fortaleza','America/Glace_Bay','America/Godthab','America/Goose_Bay','America/Grand_Turk','America/Grenada','America/Guadeloupe','America/Guatemala','America/Guayaquil','America/Guyana','America/Halifax','America/Havana','America/Hermosillo','America/Indiana/Indianapolis','America/Indiana/Knox','America/Indiana/Marengo','America/Indiana/Petersburg','America/Indiana/Tell_City','America/Indiana/Vevay','America/Indiana/Vincennes','America/Indiana/Winamac','America/Inuvik','America/Iqaluit','America/Jamaica','America/Juneau','America/Kentucky/Louisville','America/Kentucky/Monticello','America/Kralendijk','America/La_Paz','America/Lima','America/Los_Angeles','America/Lower_Princes','America/Maceio','America/Managua','America/Manaus','America/Marigot','America/Martinique','America/Matamoros','America/Mazatlan','America/Menominee','America/Merida','America/Metlakatla','America/Mexico_City','America/Miquelon','America/Moncton','America/Monterrey','America/Montevideo','America/Montreal','America/Montserrat','America/Nassau','America/New_York','America/Nipigon','America/Nome','America/Noronha','America/North_Dakota/Beulah','America/North_Dakota/Center','America/North_Dakota/New_Salem','America/Nuuk','America/Ojinaga','America/Panama','America/Pangnirtung','America/Paramaribo','America/Phoenix','America/Port-au-Prince','America/Port_of_Spain','America/Porto_Velho','America/Puerto_Rico','America/Punta_Arenas','America/Rainy_River','America/Rankin_Inlet','America/Recife','America/Regina','America/Resolute','America/Rio_Branco','America/Santa_Isabel','America/Santarem','America/Santiago','America/Santo_Domingo','America/Sao_Paulo','America/Scoresbysund','America/Shiprock','America/Sitka','America/St_Barthelemy','America/St_Johns','America/St_Kitts','America/St_Lucia','America/St_Thomas','America/St_Vincent','America/Swift_Current','America/Tegucigalpa','America/Thule','America/Thunder_Bay','America/Tijuana','America/Toronto','America/Tortola','America/Vancouver','America/Whitehorse','America/Winnipeg','America/Yakutat','America/Yellowknife','Antarctica/Casey
','Antarctica/Davis','Antarctica/DumontDUrville','Antarctica/Macquarie','Antarctica/Mawson','Antarctica/McMurdo','Antarctica/Palmer','Antarctica/Rothera','Antarctica/South_Pole','Antarctica/Syowa','Antarctica/Troll','Antarctica/Vostok','Arctic/Longyearbyen','Asia/Aden','Asia/Almaty','Asia/Amman','Asia/Anadyr','Asia/Aqtau','Asia/Aqtobe','Asia/Ashgabat','Asia/Atyrau','Asia/Baghdad','Asia/Bahrain','Asia/Baku','Asia/Bangkok','Asia/Barnaul','Asia/Beirut','Asia/Bishkek','Asia/Brunei','Asia/Calcutta','Asia/Chita','Asia/Choibalsan','Asia/Chongqing','Asia/Colombo','Asia/Damascus','Asia/Dhaka','Asia/Dili','Asia/Dubai','Asia/Dushanbe','Asia/Famagusta','Asia/Gaza','Asia/Harbin','Asia/Hebron','Asia/Ho_Chi_Minh','Asia/Hong_Kong','Asia/Hovd','Asia/Irkutsk','Asia/Jakarta','Asia/Jayapura','Asia/Jerusalem','Asia/Kabul','Asia/Kamchatka','Asia/Karachi','Asia/Kashgar','Asia/Kathmandu','Asia/Katmandu','Asia/Khandyga','Asia/Krasnoyarsk','Asia/Kuala_Lumpur','Asia/Kuching','Asia/Kuwait','Asia/Macau','Asia/Magadan','Asia/Makassar','Asia/Manila','Asia/Muscat','Asia/Nicosia','Asia/Novokuznetsk','Asia/Novosibirsk','Asia/Omsk','Asia/Oral','Asia/Phnom_Penh','Asia/Pontianak','Asia/Pyongyang','Asia/Qatar','Asia/Qostanay','Asia/Qyzylorda','Asia/Rangoon','Asia/Riyadh','Asia/Sakhalin','Asia/Samarkand','Asia/Seoul','Asia/Shanghai','Asia/Singapore','Asia/Srednekolymsk','Asia/Taipei','Asia/Tashkent','Asia/Tbilisi','Asia/Tehran','Asia/Thimphu','Asia/Tokyo','Asia/Tomsk','Asia/Ulaanbaatar','Asia/Urumqi','Asia/Ust-Nera','Asia/Vientiane','Asia/Vladivostok','Asia/Yakutsk','Asia/Yangon','Asia/Yekaterinburg','Asia/Yerevan','Atlantic/Azores','Atlantic/Bermuda','Atlantic/Canary','Atlantic/Cape_Verde','Atlantic/Faroe','Atlantic/Madeira','Atlantic/Reykjavik','Atlantic/South_Georgia','Atlantic/St_Helena','Atlantic/Stanley','Australia/Adelaide','Australia/Brisbane','Australia/Broken_Hill','Australia/Currie','Australia/Darwin','Australia/Eucla','Australia/Hobart','Australia/Lindeman','Australia/Lord_Howe','Australia/Melbourne','Australia/Perth','Australia/Sydney','Europe/Amsterdam','Europe/Andorra','Europe/Astrakhan','Europe/Athens','Europe/Belgrade','Europe/Berlin','Europe/Bratislava','Europe/Brussels','Europe/Bucharest','Europe/Budapest','Europe/Busingen','Europe/Chisinau','Europe/Copenhagen','Europe/Dublin','Europe/Gibraltar','Europe/Guernsey','Europe/Helsinki','Europe/Isle_of_Man','Europe/Istanbul','Europe/Jersey','Europe/Kaliningrad','Europe/Kiev','Europe/Kirov','Europe/Kyiv','Europe/Lisbon','Europe/Ljubljana','Europe/London','Europe/Luxembourg','Europe/Madrid','Europe/Malta','Europe/Mariehamn','Europe/Minsk','Europe/Monaco','Europe/Moscow','Europe/Oslo','Europe/Paris','Europe/Podgorica','Europe/Prague','Europe/Riga','Europe/Rome','Europe/Samara','Europe/San_Marino','Europe/Sarajevo','Europe/Saratov','Europe/Simferopol','Europe/Skopje','Europe/Sofia','Europe/Stockholm','Europe/Tallinn','Europe/Tirane','Europe/Ulyanovsk','Europe/Uzhgorod','Europe/Vaduz','Europe/Vatican','Europe/Vienna','Europe/Vilnius','Europe/Volgograd','Europe/Warsaw','Europe/Zagreb','Europe/Zaporozhye','Europe/Zurich','GMT','Indian/Antananarivo','Indian/Chagos','Indian/Christmas','Indian/Cocos','Indian/Comoro','Indian/Kerguelen','Indian/Mahe','Indian/Maldives','Indian/Mauritius','Indian/Mayotte','Indian/Reunion','Pacific/Apia','Pacific/Auckland','Pacific/Bougainville','Pacific/Chatham','Pacific/Chuuk','Pacific/Easter','Pacific/Efate','Pacific/Enderbury','Pacific/Fakaofo','Pacific/Fiji','Pacific/Funafuti','Pacific/Galapagos','Pacific/Gambier','Pacific/Guadalcanal','Pacific/Guam','Pacific/Honolulu','Pacific/Johnston','Pacific/Kanton','Pacific/Kiritimati','Pacific/Kosrae','Pacific/Kwajalein','Pacific/Majuro','Pacific/Marquesas','Pacific/Midway','Pacific/Nauru','Pacific/Niue','Pacific/Norfolk','Pacific/Noumea','Pacific/Pago_Pago','Pacific/Palau','Pacific/Pitcairn','Pacific/Pohnpei','Pacific/Ponape','Pacific/Port_Moresby','Pacific/Rarotonga','Pacific/Saipan','Pacific/Tahiti','Pacific/Tarawa','Pacific/Tongatapu','Pacific/Truk','Pacific/Wake','Pacific/Wallis'

I too needed to have a complete time zone list with preformated data like:

{
name: "America/Los_Angeles",
alternativeName: "Pacific Time",
group: ["America/Los_Angeles"],
countryName: "United States",
mainCities: ["Los Angeles", "San Diego"],
rawOffsetInMinutes: -480, // "raw" time zone offset, when there's no DST in place
rawFormat: "-08:00 Pacific Time - Los Angeles, San Diego",
currentTimeOffsetInMinutes: -420, // "current" time zone offset, this is why getTimeZones() is a method and not just an object: it can only work at runtime
currentTimeFormat: "-07:00 Pacific Time - Los Angeles, San Diego",
}

Since I could not find a good list that would also be maintained, I created an npm package for it: https://github.com/vvo/tzdb/. The list of time zones is automatically updated when there are changes (like new time zones).

You can then use https://github.com/moment/luxon if you need to manipulate dates with time zones.

The list of time zones is grouped to reduce the number of time zones. We do grouping only when: same country AND same offsets (DST, non DST).

This basically gives you a time zone list that is very close to the one from Google Calendar.

Good luck!

The marked answer doesn't seem to work for the Pacific/Honolulu timezone.

I've made another function that worked for that:

function getTimezoneOffset(timeZone) {
const now = new Date();
const tzString = now.toLocaleString('en-US', { timeZone });
const localString = now.toLocaleString('en-US');
const diff = (Date.parse(localString) - Date.parse(tzString)) / 3600000;
const offset = diff + now.getTimezoneOffset() / 60;
  

return -offset;
}

Usage example:

const offset = getTimezoneOffset('Pacific/Honolulu');


console.log(offset); // output: -10

I have updated the timezone list in the parent and child.

var rows = [
{
id: 1,
continent: 'Asia',
newRow: [
{id: 1, country: 'Dubai', tz: 'Asia/Dubai'},
{id: 2, country: 'Kabul', tz: 'Asia/Kabul'},
{id: 3, country: 'Yerevan', tz: 'Asia/Yerevan'},
{id: 4, country: 'Baku', tz: 'Asia/Baku'},
{id: 5, country: 'Dhaka', tz: 'Asia/Dhaka'},
{id: 6, country: 'Brunei', tz: 'Asia/Brunei'},
{id: 7, country: 'Thimphu', tz: 'Asia/Thimphu'},
{id: 8, country: 'Shanghai', tz: 'Asia/Shanghai'},
{id: 9, country: 'Urumqi', tz: 'Asia/Urumqi'},
{id: 10, country: 'Nicosia', tz: 'Asia/Nicosia'},
{id: 11, country: 'Famagusta', tz: 'Asia/Famagusta'},
{id: 12, country: 'Tbilisi', tz: 'Asia/Tbilisi'},
{id: 13, country: 'Hong_Kong', tz: 'Asia/Hong_Kong'},
{id: 14, country: 'Jakarta', tz: 'Asia/Jakarta'},
{id: 15, country: 'Pontianak', tz: 'Asia/Pontianak'},
{id: 16, country: 'Makassar', tz: 'Asia/Makassar'},
{id: 17, country: 'Jayapura', tz: 'Asia/Jayapura'},
{id: 18, country: 'Jerusalem', tz: 'Asia/Jerusalem'},
{id: 19, country: 'Kolkata', tz: 'Asia/Kolkata'},
{id: 20, country: 'Baghdad', tz: 'Asia/Baghdad'},
{id: 21, country: 'Tehran', tz: 'Asia/Tehran'},
{id: 22, country: 'Amman', tz: 'Asia/Amman'},
{id: 23, country: 'Tokyo', tz: 'Asia/Tokyo'},
{id: 24, country: 'Bishkek', tz: 'Asia/Bishkek'},
{id: 25, country: 'Pyongyang', tz: 'Asia/Pyongyang'},
{id: 26, country: 'Seoul', tz: 'Asia/Seoul'},
{id: 27, country: 'Almaty', tz: 'Asia/Almaty'},
{id: 28, country: 'Qyzylorda', tz: 'Asia/Qyzylorda'},
{id: 29, country: 'Qostanay', tz: 'Asia/Qostanay'},
{id: 30, country: 'Aqtobe', tz: 'Asia/Aqtobe'},
{id: 31, country: 'Aqtau', tz: 'Asia/Aqtau'},
{id: 32, country: 'Atyrau', tz: 'Asia/Atyrau'},
{id: 33, country: 'Oral', tz: 'Asia/Oral'},
{id: 34, country: 'Beirut', tz: 'Asia/Beirut'},
{id: 35, country: 'Colombo', tz: 'Asia/Colombo'},
{id: 36, country: 'Yangon', tz: 'Asia/Yangon'},
{id: 37, country: 'Ulaanbaatar', tz: 'Asia/Ulaanbaatar'},
{id: 38, country: 'Hovd', tz: 'Asia/Hovd'},
{id: 39, country: 'Choibalsan', tz: 'Asia/Choibalsan'},
{id: 40, country: 'Macau', tz: 'Asia/Macau'},
{id: 41, country: 'Kuala_Lumpur', tz: 'Asia/Kuala_Lumpur'},
{id: 42, country: 'Kuching', tz: 'Asia/Kuching'},
{id: 43, country: 'Karachi', tz: 'Asia/Karachi'},
{id: 44, country: 'Gaza', tz: 'Asia/Gaza'},
{id: 45, country: 'Hebron', tz: 'Asia/Hebron'},
{id: 46, country: 'Kathmandu', tz: 'Asia/Kathmandu'},
{id: 47, country: 'Yekaterinburg', tz: 'Asia/Yekaterinburg'},
{id: 48, country: 'Qatar', tz: 'Asia/Qatar'},
{id: 49, country: 'Omsk', tz: 'Asia/Omsk'},
{id: 50, country: 'Novosibirsk', tz: 'Asia/Novosibirsk'},
{id: 51, country: 'Barnaul', tz: 'Asia/Barnaul'},
{id: 52, country: 'Tomsk', tz: 'Asia/Tomsk'},
{id: 53, country: 'Novokuznetsk', tz: 'Asia/Novokuznetsk'},
{id: 54, country: 'Krasnoyarsk', tz: 'Asia/Krasnoyarsk'},
{id: 55, country: 'Irkutsk', tz: 'Asia/Irkutsk'},
{id: 56, country: 'Chita', tz: 'Asia/Chita'},
{id: 57, country: 'Yakutsk', tz: 'Asia/Yakutsk'},
{id: 58, country: 'Khandyga', tz: 'Asia/Khandyga'},
{id: 59, country: 'Vladivostok', tz: 'Asia/Vladivostok'},
{id: 60, country: 'Ust-Nera', tz: 'Asia/Ust-Nera'},
{id: 61, country: 'Singapore', tz: 'Asia/Singapore'},
{id: 62, country: 'Magadan', tz: 'Asia/Magadan'},
{id: 63, country: 'Sakhalin', tz: 'Asia/Sakhalin'},
{id: 64, country: 'Srednekolymsk', tz: 'Asia/Srednekolymsk'},
{id: 65, country: 'Kamchatka', tz: 'Asia/Kamchatka'},
{id: 66, country: 'Anadyr', tz: 'Asia/Anadyr'},
{id: 67, country: 'Bangkok', tz: 'Asia/Bangkok'},
{id: 68, country: 'Dushanbe', tz: 'Asia/Dushanbe'},
{id: 69, country: 'Taipei', tz: 'Asia/Taipei'},
{id: 70, country: 'Dili', tz: 'Asia/Dili'},
{id: 71, country: 'Ashgabat', tz: 'Asia/Ashgabat'},
{id: 72, country: 'Damascus', tz: 'Asia/Damascus'},
{id: 73, country: 'Riyadh', tz: 'Asia/Riyadh'},
{id: 74, country: 'Samarkand', tz: 'Asia/Samarkand'},
{id: 75, country: 'Tashkent', tz: 'Asia/Tashkent'},
{id: 76, country: 'Ho_Chi_Minh', tz: 'Asia/Ho_Chi_Minh'},
],
},
{
id: 2,
continent: 'Europe',
newRow: [
{id: 1, country: 'Andorra', tz: 'Europe/Andorra'},
{id: 2, country: 'Tirane', tz: 'Europe/Tirane'},
{id: 3, country: 'Vienna', tz: 'Europe/Vienna'},
{id: 4, country: 'Brussels', tz: 'Europe/Brussels'},
{id: 5, country: 'Sofia', tz: 'Europe/Sofia'},
{id: 6, country: 'Minsk', tz: 'Europe/Minsk'},
{id: 7, country: 'Zurich', tz: 'Europe/Zurich'},
{id: 8, country: 'Prague', tz: 'Europe/Prague'},
{id: 9, country: 'Berlin', tz: 'Europe/Berlin'},
{id: 10, country: 'Copenhagen', tz: 'Europe/Copenhagen'},
{id: 11, country: 'Tallinn', tz: 'Europe/Tallinn'},
{id: 12, country: 'Madrid', tz: 'Europe/Madrid'},
{id: 13, country: 'Helsinki', tz: 'Europe/Helsinki'},
{id: 14, country: 'Paris', tz: 'Europe/Paris'},
{id: 15, country: 'London', tz: 'Europe/London'},
{id: 16, country: 'Gibraltar', tz: 'Europe/Gibraltar'},
{id: 17, country: 'Athens', tz: 'Europe/Athens'},
{id: 18, country: 'Budapest', tz: 'Europe/Budapest'},
{id: 19, country: 'Dublin', tz: 'Europe/Dublin'},
{id: 20, country: 'Rome', tz: 'Europe/Rome'},
{id: 21, country: 'Vilnius', tz: 'Europe/Vilnius'},
{id: 22, country: 'Luxembourg', tz: 'Europe/Luxembourg'},
{id: 23, country: 'Riga', tz: 'Europe/Riga'},
{id: 24, country: 'Monaco', tz: 'Europe/Monaco'},
{id: 25, country: 'Chisinau', tz: 'Europe/Chisinau'},
{id: 26, country: 'Malta', tz: 'Europe/Malta'},
{id: 27, country: 'Amsterdam', tz: 'Europe/Amsterdam'},
{id: 28, country: 'Oslo', tz: 'Europe/Oslo'},
{id: 29, country: 'Warsaw', tz: 'Europe/Warsaw'},
{id: 30, country: 'Warsaw', tz: 'Europe/Warsaw'},
{id: 31, country: 'Lisbon', tz: 'Europe/Lisbon'},
{id: 32, country: 'Bucharest', tz: 'Europe/Bucharest'},
{id: 33, country: 'Belgrade', tz: 'Europe/Belgrade'},
{id: 34, country: 'Kaliningrad', tz: 'Europe/Kaliningrad'},
{id: 35, country: 'Moscow', tz: 'Europe/Moscow'},
{id: 36, country: 'Simferopol', tz: 'Europe/Simferopol'},
{id: 37, country: 'Kirov', tz: 'Europe/Kirov'},
{id: 38, country: 'Astrakhan', tz: 'Europe/Astrakhan'},
{id: 39, country: 'Volgograd', tz: 'Europe/Volgograd'},
{id: 40, country: 'Saratov', tz: 'Europe/Saratov'},
{id: 41, country: 'Ulyanovsk', tz: 'Europe/Ulyanovsk'},
{id: 42, country: 'Samara', tz: 'Europe/Samara'},
{id: 43, country: 'Stockholm', tz: 'Europe/Stockholm'},
{id: 44, country: 'Istanbul', tz: 'Europe/Istanbul'},
{id: 45, country: 'Kiev', tz: 'Europe/Kiev'},
{id: 46, country: 'Uzhgorod', tz: 'Europe/Uzhgorod'},
{id: 47, country: 'Zaporozhye', tz: 'Europe/Zaporozhye'},
],
},
{
id: 3,
continent: 'Antarctica',
newRow: [
{id: 1, country: 'Casey', tz: 'Antarctica/Casey'},
{id: 2, country: 'Davis', tz: 'Antarctica/Davis'},
{id: 3, country: 'DumontDUrville', tz: 'Antarctica/DumontDUrville'},
{id: 4, country: 'Mawson', tz: 'Antarctica/Mawson'},
{id: 5, country: 'Palmer', tz: 'Antarctica/Palmer'},
{id: 6, country: 'Rothera', tz: 'Antarctica/Rothera'},
{id: 7, country: 'Syowa', tz: 'Antarctica/Syowa'},
{id: 8, country: 'Troll', tz: 'Antarctica/Troll'},
{id: 9, country: 'Vostok', tz: 'Antarctica/Vostok'},
{id: 10, country: 'Macquarie', tz: 'Antarctica/Macquarie'},
],
},
{
id: 4,
continent: 'America',
newRow: [
{id: 1, country: 'Buenos_Aires', tz: 'America/Argentina/Buenos_Aires'},
{id: 2, country: 'Cordoba', tz: 'America/Argentina/Cordoba'},
{id: 3, country: 'Salta', tz: 'America/Argentina/Salta'},
{id: 4, country: 'Jujuy', tz: 'America/Argentina/Jujuy'},
{id: 5, country: 'Tucuman', tz: 'America/Argentina/Tucuman'},
{id: 6, country: 'Catamarca', tz: 'America/Argentina/Catamarca'},
{id: 7, country: 'La_Rioja', tz: 'America/Argentina/La_Rioja'},
{id: 8, country: 'San_Juan', tz: 'America/Argentina/San_Juan'},
{id: 9, country: 'Mendoza', tz: 'America/Argentina/Mendoza'},
{id: 10, country: 'San_Luis', tz: 'America/Argentina/San_Luis'},
{id: 11, country: 'Rio_Gallegos', tz: 'America/Argentina/Rio_Gallegos'},
{id: 12, country: 'Ushuaia', tz: 'America/Argentina/Ushuaia'},
{id: 13, country: 'Barbados', tz: 'America/Barbados'},
{id: 14, country: 'La_Paz', tz: 'America/La_Paz'},
{id: 15, country: 'Belem', tz: 'America/Belem'},
{id: 16, country: 'Fortaleza', tz: 'America/Fortaleza'},
{id: 17, country: 'Recife', tz: 'America/Recife'},
{id: 18, country: 'Araguaina', tz: 'America/Araguaina'},
{id: 19, country: 'Maceio', tz: 'America/Maceio'},
{id: 20, country: 'Bahia', tz: 'America/Bahia'},
{id: 21, country: 'Sao_Paulo', tz: 'America/Sao_Paulo'},
{id: 22, country: 'Campo_Grande', tz: 'America/Campo_Grande'},
{id: 23, country: 'Cuiaba', tz: 'America/Cuiaba'},
{id: 24, country: 'Porto_Velho', tz: 'America/Porto_Velho'},
{id: 25, country: 'Boa_Vista', tz: 'America/Boa_Vista'},
{id: 26, country: 'Manaus', tz: 'America/Manaus'},
{id: 27, country: 'Eirunepe', tz: 'America/Eirunepe'},
{id: 28, country: 'Rio_Branco', tz: 'America/Rio_Branco'},
{id: 29, country: 'Nassau', tz: 'America/Nassau'},
{id: 30, country: 'Belize', tz: 'America/Belize'},
{id: 31, country: 'St_Johns', tz: 'America/St_Johns'},
{id: 32, country: 'Halifax', tz: 'America/Halifax'},
{id: 33, country: 'Glace_Bay', tz: 'America/Glace_Bay'},
{id: 34, country: 'Moncton', tz: 'America/Moncton'},
{id: 35, country: 'Goose_Bay', tz: 'America/Goose_Bay'},
{id: 36, country: 'Blanc-Sablon', tz: 'America/Blanc-Sablon'},
{id: 37, country: 'Toronto', tz: 'America/Toronto'},
{id: 38, country: 'Nipigon', tz: 'America/Nipigon'},
{id: 39, country: 'Thunder_Bay', tz: 'America/Thunder_Bay'},
{id: 40, country: 'Iqaluit', tz: 'America/Iqaluit'},
{id: 41, country: 'Pangnirtung', tz: 'America/Pangnirtung'},
{id: 42, country: 'Atikokan', tz: 'America/Atikokan'},
{id: 43, country: 'Winnipeg', tz: 'America/Winnipeg'},
{id: 44, country: 'Rainy_River', tz: 'America/Rainy_River'},
{id: 45, country: 'Resolute', tz: 'America/Resolute'},
{id: 46, country: 'Rankin_Inlet', tz: 'America/Rankin_Inlet'},
{id: 47, country: 'Regina', tz: 'America/Regina'},
{id: 48, country: 'Swift_Current', tz: 'America/Swift_Current'},
{id: 49, country: 'Edmonton', tz: 'America/Edmonton'},
{id: 50, country: 'Cambridge_Bay', tz: 'America/Cambridge_Bay'},
{id: 51, country: 'Yellowknife', tz: 'America/Yellowknife'},
{id: 52, country: 'Inuvik', tz: 'America/Inuvik'},
{id: 53, country: 'Creston', tz: 'America/Creston'},
{id: 54, country: 'Dawson_Creek', tz: 'America/Dawson_Creek'},
{id: 55, country: 'Fort_Nelson', tz: 'America/Fort_Nelson'},
{id: 56, country: 'Vancouver', tz: 'America/Vancouver'},
{id: 57, country: 'Whitehorse', tz: 'America/Whitehorse'},
{id: 58, country: 'Dawson', tz: 'America/Dawson'},
{id: 59, country: 'Santiago', tz: 'America/Santiago'},
{id: 60, country: 'Punta_Arenas', tz: 'America/Punta_Arenas'},
{id: 61, country: 'Bogota', tz: 'America/Bogota'},
{id: 62, country: 'Costa_Rica', tz: 'America/Costa_Rica'},
{id: 63, country: 'Havana', tz: 'America/Havana'},
{id: 64, country: 'Curacao', tz: 'America/Curacao'},
{id: 65, country: 'Santo_Domingo', tz: 'America/Santo_Domingo'},
{id: 66, country: 'Guayaquil', tz: 'America/Guayaquil'},
{id: 67, country: 'Cayenne', tz: 'America/Cayenne'},
{id: 68, country: 'Godthab', tz: 'America/Godthab'},
{id: 69, country: 'Danmarkshavn', tz: 'America/Danmarkshavn'},
{id: 70, country: 'Scoresbysund', tz: 'America/Scoresbysund'},
{id: 71, country: 'Cayenne', tz: 'America/Cayenne'},
{id: 72, country: 'Godthab', tz: 'America/Godthab'},
{id: 73, country: 'Danmarkshavn', tz: 'America/Danmarkshavn'},
{id: 74, country: 'Scoresbysund', tz: 'America/Scoresbysund'},
{id: 75, country: 'Thule', tz: 'America/Thule'},
{id: 76, country: 'Guatemala', tz: 'America/Guatemala'},
{id: 77, country: 'Guyana', tz: 'America/Guyana'},
{id: 78, country: 'Tegucigalpa', tz: 'America/Tegucigalpa'},
{id: 79, country: 'Port-au-Prince', tz: 'America/Port-au-Prince'},
{id: 80, country: 'Jamaica', tz: 'America/Jamaica'},
{id: 81, country: 'Martinique', tz: 'America/Martinique'},
{id: 82, country: 'Mexico_City', tz: 'America/Mexico_City'},
{id: 83, country: 'Cancun', tz: 'America/Cancun'},
{id: 84, country: 'Merida', tz: 'America/Merida'},
{id: 85, country: 'Monterrey', tz: 'America/Monterrey'},
{id: 86, country: 'Matamoros', tz: 'America/Matamoros'},
{id: 87, country: 'Caracas', tz: 'America/Caracas'},
{id: 88, country: 'Mazatlan', tz: 'America/Mazatlan'},
{id: 89, country: 'Chihuahua', tz: 'America/Chihuahua'},
{id: 90, country: 'Ojinaga', tz: 'America/Ojinaga'},
{id: 91, country: 'Hermosillo', tz: 'America/Hermosillo'},
{id: 92, country: 'Tijuana', tz: 'America/Tijuana'},
{id: 93, country: 'Bahia_Banderas', tz: 'America/Bahia_Banderas'},
{id: 94, country: 'Managua', tz: 'America/Managua'},
{id: 95, country: 'Panama', tz: 'America/Panama'},
{id: 96, country: 'Lima', tz: 'America/Lima'},
{id: 97, country: 'Miquelon', tz: 'America/Miquelon'},
{id: 98, country: 'Puerto_Rico', tz: 'America/Puerto_Rico'},
{id: 99, country: 'El_Salvador', tz: 'America/El_Salvador'},
{id: 100, country: 'Grand_Turk', tz: 'America/Grand_Turk'},
{id: 101, country: 'Paramaribo', tz: 'America/Paramaribo'},
{id: 102, country: 'Asuncion', tz: 'America/Asuncion'},
{id: 103, country: 'Port_of_Spain', tz: 'America/Port_of_Spain'},
{id: 104, country: 'New_York', tz: 'America/New_York'},
{id: 105, country: 'Detroit', tz: 'America/Detroit'},
{id: 106, country: 'Louisville', tz: 'America/Kentucky/Louisville'},
{id: 107, country: 'Monticello', tz: 'America/Kentucky/Monticello'},
{id: 108, country: 'Indianapolis', tz: 'America/Indiana/Indianapolis'},
{id: 109, country: 'Vincennes', tz: 'America/Indiana/Vincennes'},
{id: 110, country: 'Winamac', tz: 'America/Indiana/Winamac'},
{id: 111, country: 'Marengo', tz: 'America/Indiana/Marengo'},
{id: 112, country: 'Petersburg', tz: 'America/Indiana/Petersburg'},
{id: 113, country: 'Vevay', tz: 'America/Indiana/Vevay'},
{id: 114, country: 'Tell_City', tz: 'America/Indiana/Tell_City'},
{id: 115, country: 'Knox', tz: 'America/Indiana/Knox'},
{id: 116, country: 'Chicago', tz: 'America/Chicago'},
{id: 117, country: 'Menominee', tz: 'America/Menominee'},
{id: 118, country: 'Denver', tz: 'America/Denver'},
{id: 119, country: 'Boise', tz: 'America/Boise'},
{id: 120, country: 'Phoenix', tz: 'America/Phoenix'},
{id: 121, country: 'Center', tz: 'America/North_Dakota/Center'},
{id: 122, country: 'New_Salem', tz: 'America/North_Dakota/New_Salem'},
{id: 123, country: 'Beulah', tz: 'America/North_Dakota/Beulah'},
{id: 124, country: 'Los_Angeles', tz: 'America/Los_Angeles'},
{id: 125, country: 'Anchorage', tz: 'America/Anchorage'},
{id: 126, country: 'Juneau', tz: 'America/Juneau'},
{id: 127, country: 'Sitka', tz: 'America/Sitka'},
{id: 128, country: 'Metlakatla', tz: 'America/Metlakatla'},
{id: 129, country: 'Yakutat', tz: 'America/Yakutat'},
{id: 130, country: 'Nome', tz: 'America/Nome'},
{id: 131, country: 'Adak', tz: 'America/Adak'},
{id: 132, country: 'Montevideo', tz: 'America/Montevideo'},
],
},
{
id: 5,
continent: 'Pacific',
newRow: [
{id: 1, country: 'Pago_Pago', tz: 'Pacific/Pago_Pago'},
{id: 2, country: 'Rarotonga', tz: 'Pacific/Rarotonga'},
{id: 3, country: 'Easter', tz: 'Pacific/Easter'},
{id: 4, country: 'Galapagos', tz: 'Pacific/Galapagos'},
{id: 5, country: 'Fiji', tz: 'Pacific/Fiji'},
{id: 6, country: 'Chuuk', tz: 'Pacific/Chuuk'},
{id: 7, country: 'Pohnpei', tz: 'Pacific/Pohnpei'},
{id: 8, country: 'Kosrae', tz: 'Pacific/Kosrae'},
{id: 9, country: 'Guam', tz: 'Pacific/Guam'},
{id: 10, country: 'Majuro', tz: 'Pacific/Majuro'},
{id: 11, country: 'Kwajalein', tz: 'Pacific/Kwajalein'},
{id: 12, country: 'Tarawa', tz: 'Pacific/Tarawa'},
{id: 13, country: 'Enderbury', tz: 'Pacific/Enderbury'},
{id: 14, country: 'Kiritimati', tz: 'Pacific/Kiritimati'},
{id: 15, country: 'Noumea', tz: 'Pacific/Noumea'},
{id: 16, country: 'Norfolk', tz: 'Pacific/Norfolk'},
{id: 17, country: 'Nauru', tz: 'Pacific/Nauru'},
{id: 18, country: 'Niue', tz: 'Pacific/Niue'},
{id: 19, country: 'Auckland', tz: 'Pacific/Auckland'},
{id: 20, country: 'Chatham', tz: 'Pacific/Chatham'},
{id: 21, country: 'Tahiti', tz: 'Pacific/Tahiti'},
{id: 22, country: 'Marquesas', tz: 'Pacific/Marquesas'},
{id: 23, country: 'Gambier', tz: 'Pacific/Gambier'},
{id: 24, country: 'Port_Moresby', tz: 'Pacific/Port_Moresby'},
{id: 25, country: 'Bougainville', tz: 'Pacific/Bougainville'},
{id: 26, country: 'Pitcairn', tz: 'Pacific/Pitcairn'},
{id: 27, country: 'Palau', tz: 'Pacific/Palau'},
{id: 28, country: 'Guadalcanal', tz: 'Pacific/Guadalcanal'},
{id: 29, country: 'Fakaofo', tz: 'Pacific/Fakaofo'},
{id: 30, country: 'Tongatapu', tz: 'Pacific/Tongatapu'},
{id: 31, country: 'Funafuti', tz: 'Pacific/Funafuti'},
{id: 32, country: 'Wake', tz: 'Pacific/Wake'},
{id: 33, country: 'Honolulu', tz: 'Pacific/Honolulu'},
{id: 34, country: 'Efate', tz: 'Pacific/Efate'},
{id: 35, country: 'Wallis', tz: 'Pacific/Wallis'},
{id: 36, country: 'Apia', tz: 'Pacific/Apia'},
],
},
{
id: 6,
continent: 'Australia',
newRow: [
{id: 1, country: 'Lord_Howe', tz: 'Australia/Lord_Howe'},
{id: 2, country: 'Hobart', tz: 'Australia/Hobart'},
{id: 3, country: 'Currie', tz: 'Australia/Currie'},
{id: 4, country: 'Melbourne', tz: 'Australia/Melbourne'},
{id: 5, country: 'Sydney', tz: 'Australia/Sydney'},
{id: 6, country: 'Broken_Hill', tz: 'Australia/Broken_Hill'},
{id: 7, country: 'Brisbane', tz: 'Australia/Brisbane'},
{id: 8, country: 'Lindeman', tz: 'Australia/Lindeman'},
{id: 9, country: 'Adelaide', tz: 'Australia/Adelaide'},
{id: 10, country: 'Darwin', tz: 'Australia/Darwin'},
{id: 11, country: 'Perth', tz: 'Australia/Perth'},
{id: 12, country: 'Eucla', tz: 'Australia/Eucla'},
],
},
{
id: 7,
continent: 'Africa',
newRow: [
{id: 1, country: 'Abidjan', tz: 'Africa/Abidjan'},
{id: 2, country: 'Algiers', tz: 'Africa/Algiers'},
{id: 3, country: 'Cairo', tz: 'Africa/Cairo'},
{id: 4, country: 'El_Aaiun', tz: 'Africa/El_Aaiun'},
{id: 5, country: 'Ceuta', tz: 'Africa/Ceuta'},
{id: 6, country: 'Accra', tz: 'Africa/Accra'},
{id: 7, country: 'Bissau', tz: 'Africa/Bissau'},
{id: 8, country: 'Nairobi', tz: 'Africa/Nairobi'},
{id: 9, country: 'Monrovia', tz: 'Africa/Monrovia'},
{id: 10, country: 'Tripoli', tz: 'Africa/Tripoli'},
{id: 11, country: 'Casablanca', tz: 'Africa/Casablanca'},
{id: 12, country: 'Maputo', tz: 'Africa/Maputo'},
{id: 13, country: 'Windhoek', tz: 'Africa/Windhoek'},
{id: 14, country: 'Lagos', tz: 'Africa/Lagos'},
{id: 15, country: 'Khartoum', tz: 'Africa/Khartoum'},
{id: 16, country: 'Juba', tz: 'Africa/Juba'},
{id: 17, country: 'Sao_Tome', tz: 'Africa/Sao_Tome'},
{id: 18, country: 'Ndjamena', tz: 'Africa/Ndjamena'},
{id: 19, country: 'Tunis', tz: 'Africa/Tunis'},
{id: 20, country: 'Johannesburg', tz: 'Africa/Johannesburg'},
],
},
{
id: 8,
continent: 'Atlantic',
newRow: [
{id: 1, country: 'Azores', tz: 'Atlantic/Azores'},
{id: 2, country: 'Bermuda', tz: 'Atlantic/Bermuda'},
{id: 3, country: 'Madeira', tz: 'Atlantic/Madeira'},
],
},
{
id: 9,
continent: 'Atlantic',
newRow: [
{id: 1, country: 'Cape_Verde', tz: 'Atlantic/Cape_Verde'},
{id: 2, country: 'Canary', tz: 'Atlantic/Canary'},
{id: 3, country: 'Stanley', tz: 'Atlantic/Stanley'},
{id: 4, country: 'Faroe', tz: 'Atlantic/Faroe'},
{id: 5, country: 'South_Georgia', tz: 'Atlantic/South_Georgia'},
{id: 6, country: 'Reykjavik', tz: 'Atlantic/Reykjavik'},
],
},
{
id: 10,
continent: 'Indian',
newRow: [
{id: 1, country: 'Cocos', tz: 'Indian/Cocos'},
{id: 2, country: 'Christmas', tz: 'Indian/Christmas'},
{id: 3, country: 'Chagos', tz: 'Indian/Chagos'},
{id: 4, country: 'Mauritius', tz: 'Indian/Mauritius'},
{id: 5, country: 'Maldives', tz: 'Indian/Maldives'},
{id: 6, country: 'Mahe', tz: 'Indian/Mahe'},
{id: 7, country: 'Reunion', tz: 'Indian/Reunion'},
{id: 8, country: 'Kerguelen', tz: 'Indian/Kerguelen'},
],
},

];

I realize my answer is late, but I just created a package about this:

https://github.com/UltiRequiem/timezones

import {
randomTimeZone,
timeZones,
} from "https://deno.land/x/timezones/mod.ts";


console.log(`My timezone is ${randomTimeZone()}.`);


const date = new Date();


for (const timeZone of timeZones) {
console.log(timeZone, date.toLocaleString("en-US", { timeZone }));
}

Supports

  • Node.js

https://www.npmjs.com/package/@ultirequiem/timezones

  • Deno

https://deno.land/x/timezones

  • Browser

https://github.com/UltiRequiem/timezones#browser

Page: https://timezones.js.org

Just for timezone list, adding a big package like moment is not recommended. Adding moment package will increase your application size and will slow down your application performance. Here is the latest timezones array

[
"Africa/Abidjan",
"Africa/Accra",
"Africa/Addis_Ababa",
"Africa/Algiers",
"Africa/Asmara",
"Africa/Asmera",
"Africa/Bamako",
"Africa/Bangui",
"Africa/Banjul",
"Africa/Bissau",
"Africa/Blantyre",
"Africa/Brazzaville",
"Africa/Bujumbura",
"Africa/Cairo",
"Africa/Casablanca",
"Africa/Ceuta",
"Africa/Conakry",
"Africa/Dakar",
"Africa/Dar_es_Salaam",
"Africa/Djibouti",
"Africa/Douala",
"Africa/El_Aaiun",
"Africa/Freetown",
"Africa/Gaborone",
"Africa/Harare",
"Africa/Johannesburg",
"Africa/Juba",
"Africa/Kampala",
"Africa/Khartoum",
"Africa/Kigali",
"Africa/Kinshasa",
"Africa/Lagos",
"Africa/Libreville",
"Africa/Lome",
"Africa/Luanda",
"Africa/Lubumbashi",
"Africa/Lusaka",
"Africa/Malabo",
"Africa/Maputo",
"Africa/Maseru",
"Africa/Mbabane",
"Africa/Mogadishu",
"Africa/Monrovia",
"Africa/Nairobi",
"Africa/Ndjamena",
"Africa/Niamey",
"Africa/Nouakchott",
"Africa/Ouagadougou",
"Africa/Porto-Novo",
"Africa/Sao_Tome",
"Africa/Timbuktu",
"Africa/Tripoli",
"Africa/Tunis",
"Africa/Windhoek",
"America/Adak",
"America/Anchorage",
"America/Anguilla",
"America/Antigua",
"America/Araguaina",
"America/Argentina/Buenos_Aires",
"America/Argentina/Catamarca",
"America/Argentina/ComodRivadavia",
"America/Argentina/Cordoba",
"America/Argentina/Jujuy",
"America/Argentina/La_Rioja",
"America/Argentina/Mendoza",
"America/Argentina/Rio_Gallegos",
"America/Argentina/Salta",
"America/Argentina/San_Juan",
"America/Argentina/San_Luis",
"America/Argentina/Tucuman",
"America/Argentina/Ushuaia",
"America/Aruba",
"America/Asuncion",
"America/Atikokan",
"America/Atka",
"America/Bahia",
"America/Bahia_Banderas",
"America/Barbados",
"America/Belem",
"America/Belize",
"America/Blanc-Sablon",
"America/Boa_Vista",
"America/Bogota",
"America/Boise",
"America/Buenos_Aires",
"America/Cambridge_Bay",
"America/Campo_Grande",
"America/Cancun",
"America/Caracas",
"America/Catamarca",
"America/Cayenne",
"America/Cayman",
"America/Chicago",
"America/Chihuahua",
"America/Coral_Harbour",
"America/Cordoba",
"America/Costa_Rica",
"America/Creston",
"America/Cuiaba",
"America/Curacao",
"America/Danmarkshavn",
"America/Dawson",
"America/Dawson_Creek",
"America/Denver",
"America/Detroit",
"America/Dominica",
"America/Edmonton",
"America/Eirunepe",
"America/El_Salvador",
"America/Ensenada",
"America/Fort_Nelson",
"America/Fort_Wayne",
"America/Fortaleza",
"America/Glace_Bay",
"America/Godthab",
"America/Goose_Bay",
"America/Grand_Turk",
"America/Grenada",
"America/Guadeloupe",
"America/Guatemala",
"America/Guayaquil",
"America/Guyana",
"America/Halifax",
"America/Havana",
"America/Hermosillo",
"America/Indiana/Indianapolis",
"America/Indiana/Knox",
"America/Indiana/Marengo",
"America/Indiana/Petersburg",
"America/Indiana/Tell_City",
"America/Indiana/Vevay",
"America/Indiana/Vincennes",
"America/Indiana/Winamac",
"America/Indianapolis",
"America/Inuvik",
"America/Iqaluit",
"America/Jamaica",
"America/Jujuy",
"America/Juneau",
"America/Kentucky/Louisville",
"America/Kentucky/Monticello",
"America/Knox_IN",
"America/Kralendijk",
"America/La_Paz",
"America/Lima",
"America/Los_Angeles",
"America/Louisville",
"America/Lower_Princes",
"America/Maceio",
"America/Managua",
"America/Manaus",
"America/Marigot",
"America/Martinique",
"America/Matamoros",
"America/Mazatlan",
"America/Mendoza",
"America/Menominee",
"America/Merida",
"America/Metlakatla",
"America/Mexico_City",
"America/Miquelon",
"America/Moncton",
"America/Monterrey",
"America/Montevideo",
"America/Montreal",
"America/Montserrat",
"America/Nassau",
"America/New_York",
"America/Nipigon",
"America/Nome",
"America/Noronha",
"America/North_Dakota/Beulah",
"America/North_Dakota/Center",
"America/North_Dakota/New_Salem",
"America/Nuuk",
"America/Ojinaga",
"America/Panama",
"America/Pangnirtung",
"America/Paramaribo",
"America/Phoenix",
"America/Port-au-Prince",
"America/Port_of_Spain",
"America/Porto_Acre",
"America/Porto_Velho",
"America/Puerto_Rico",
"America/Punta_Arenas",
"America/Rainy_River",
"America/Rankin_Inlet",
"America/Recife",
"America/Regina",
"America/Resolute",
"America/Rio_Branco",
"America/Rosario",
"America/Santa_Isabel",
"America/Santarem",
"America/Santiago",
"America/Santo_Domingo",
"America/Sao_Paulo",
"America/Scoresbysund",
"America/Shiprock",
"America/Sitka",
"America/St_Barthelemy",
"America/St_Johns",
"America/St_Kitts",
"America/St_Lucia",
"America/St_Thomas",
"America/St_Vincent",
"America/Swift_Current",
"America/Tegucigalpa",
"America/Thule",
"America/Thunder_Bay",
"America/Tijuana",
"America/Toronto",
"America/Tortola",
"America/Vancouver",
"America/Virgin",
"America/Whitehorse",
"America/Winnipeg",
"America/Yakutat",
"America/Yellowknife",
"Antarctica/Casey",
"Antarctica/Davis",
"Antarctica/DumontDUrville",
"Antarctica/Macquarie",
"Antarctica/Mawson",
"Antarctica/McMurdo",
"Antarctica/Palmer",
"Antarctica/Rothera",
"Antarctica/South_Pole",
"Antarctica/Syowa",
"Antarctica/Troll",
"Antarctica/Vostok",
"Arctic/Longyearbyen",
"Asia/Aden",
"Asia/Almaty",
"Asia/Amman",
"Asia/Anadyr",
"Asia/Aqtau",
"Asia/Aqtobe",
"Asia/Ashgabat",
"Asia/Ashkhabad",
"Asia/Atyrau",
"Asia/Baghdad",
"Asia/Bahrain",
"Asia/Baku",
"Asia/Bangkok",
"Asia/Barnaul",
"Asia/Beirut",
"Asia/Bishkek",
"Asia/Brunei",
"Asia/Calcutta",
"Asia/Chita",
"Asia/Choibalsan",
"Asia/Chongqing",
"Asia/Chungking",
"Asia/Colombo",
"Asia/Dacca",
"Asia/Damascus",
"Asia/Dhaka",
"Asia/Dili",
"Asia/Dubai",
"Asia/Dushanbe",
"Asia/Famagusta",
"Asia/Gaza",
"Asia/Harbin",
"Asia/Hebron",
"Asia/Ho_Chi_Minh",
"Asia/Hong_Kong",
"Asia/Hovd",
"Asia/Irkutsk",
"Asia/Istanbul",
"Asia/Jakarta",
"Asia/Jayapura",
"Asia/Jerusalem",
"Asia/Kabul",
"Asia/Kamchatka",
"Asia/Karachi",
"Asia/Kashgar",
"Asia/Kathmandu",
"Asia/Katmandu",
"Asia/Khandyga",
"Asia/Kolkata",
"Asia/Krasnoyarsk",
"Asia/Kuala_Lumpur",
"Asia/Kuching",
"Asia/Kuwait",
"Asia/Macao",
"Asia/Macau",
"Asia/Magadan",
"Asia/Makassar",
"Asia/Manila",
"Asia/Muscat",
"Asia/Nicosia",
"Asia/Novokuznetsk",
"Asia/Novosibirsk",
"Asia/Omsk",
"Asia/Oral",
"Asia/Phnom_Penh",
"Asia/Pontianak",
"Asia/Pyongyang",
"Asia/Qatar",
"Asia/Qostanay",
"Asia/Qyzylorda",
"Asia/Rangoon",
"Asia/Riyadh",
"Asia/Saigon",
"Asia/Sakhalin",
"Asia/Samarkand",
"Asia/Seoul",
"Asia/Shanghai",
"Asia/Singapore",
"Asia/Srednekolymsk",
"Asia/Taipei",
"Asia/Tashkent",
"Asia/Tbilisi",
"Asia/Tehran",
"Asia/Tel_Aviv",
"Asia/Thimbu",
"Asia/Thimphu",
"Asia/Tokyo",
"Asia/Tomsk",
"Asia/Ujung_Pandang",
"Asia/Ulaanbaatar",
"Asia/Ulan_Bator",
"Asia/Urumqi",
"Asia/Ust-Nera",
"Asia/Vientiane",
"Asia/Vladivostok",
"Asia/Yakutsk",
"Asia/Yangon",
"Asia/Yekaterinburg",
"Asia/Yerevan",
"Atlantic/Azores",
"Atlantic/Bermuda",
"Atlantic/Canary",
"Atlantic/Cape_Verde",
"Atlantic/Faeroe",
"Atlantic/Faroe",
"Atlantic/Jan_Mayen",
"Atlantic/Madeira",
"Atlantic/Reykjavik",
"Atlantic/South_Georgia",
"Atlantic/St_Helena",
"Atlantic/Stanley",
"Australia/ACT",
"Australia/Adelaide",
"Australia/Brisbane",
"Australia/Broken_Hill",
"Australia/Canberra",
"Australia/Currie",
"Australia/Darwin",
"Australia/Eucla",
"Australia/Hobart",
"Australia/LHI",
"Australia/Lindeman",
"Australia/Lord_Howe",
"Australia/Melbourne",
"Australia/NSW",
"Australia/North",
"Australia/Perth",
"Australia/Queensland",
"Australia/South",
"Australia/Sydney",
"Australia/Tasmania",
"Australia/Victoria",
"Australia/West",
"Australia/Yancowinna",
"Brazil/Acre",
"Brazil/DeNoronha",
"Brazil/East",
"Brazil/West",
"CET",
"CST6CDT",
"Canada/Atlantic",
"Canada/Central",
"Canada/Eastern",
"Canada/Mountain",
"Canada/Newfoundland",
"Canada/Pacific",
"Canada/Saskatchewan",
"Canada/Yukon",
"Chile/Continental",
"Chile/EasterIsland",
"Cuba",
"EET",
"EST",
"EST5EDT",
"Egypt",
"Eire",
"Etc/GMT",
"Etc/GMT+0",
"Etc/GMT+1",
"Etc/GMT+10",
"Etc/GMT+11",
"Etc/GMT+12",
"Etc/GMT+2",
"Etc/GMT+3",
"Etc/GMT+4",
"Etc/GMT+5",
"Etc/GMT+6",
"Etc/GMT+7",
"Etc/GMT+8",
"Etc/GMT+9",
"Etc/GMT-0",
"Etc/GMT-1",
"Etc/GMT-10",
"Etc/GMT-11",
"Etc/GMT-12",
"Etc/GMT-13",
"Etc/GMT-14",
"Etc/GMT-2",
"Etc/GMT-3",
"Etc/GMT-4",
"Etc/GMT-5",
"Etc/GMT-6",
"Etc/GMT-7",
"Etc/GMT-8",
"Etc/GMT-9",
"Etc/GMT0",
"Etc/Greenwich",
"Etc/UCT",
"Etc/UTC",
"Etc/Universal",
"Etc/Zulu",
"Europe/Amsterdam",
"Europe/Andorra",
"Europe/Astrakhan",
"Europe/Athens",
"Europe/Belfast",
"Europe/Belgrade",
"Europe/Berlin",
"Europe/Bratislava",
"Europe/Brussels",
"Europe/Bucharest",
"Europe/Budapest",
"Europe/Busingen",
"Europe/Chisinau",
"Europe/Copenhagen",
"Europe/Dublin",
"Europe/Gibraltar",
"Europe/Guernsey",
"Europe/Helsinki",
"Europe/Isle_of_Man",
"Europe/Istanbul",
"Europe/Jersey",
"Europe/Kaliningrad",
"Europe/Kiev",
"Europe/Kirov",
"Europe/Lisbon",
"Europe/Ljubljana",
"Europe/London",
"Europe/Luxembourg",
"Europe/Madrid",
"Europe/Malta",
"Europe/Mariehamn",
"Europe/Minsk",
"Europe/Monaco",
"Europe/Moscow",
"Europe/Nicosia",
"Europe/Oslo",
"Europe/Paris",
"Europe/Podgorica",
"Europe/Prague",
"Europe/Riga",
"Europe/Rome",
"Europe/Samara",
"Europe/San_Marino",
"Europe/Sarajevo",
"Europe/Saratov",
"Europe/Simferopol",
"Europe/Skopje",
"Europe/Sofia",
"Europe/Stockholm",
"Europe/Tallinn",
"Europe/Tirane",
"Europe/Tiraspol",
"Europe/Ulyanovsk",
"Europe/Uzhgorod",
"Europe/Vaduz",
"Europe/Vatican",
"Europe/Vienna",
"Europe/Vilnius",
"Europe/Volgograd",
"Europe/Warsaw",
"Europe/Zagreb",
"Europe/Zaporozhye",
"Europe/Zurich",
"GB",
"GB-Eire",
"GMT",
"GMT+0",
"GMT-0",
"GMT0",
"Greenwich",
"HST",
"Hongkong",
"Iceland",
"Indian/Antananarivo",
"Indian/Chagos",
"Indian/Christmas",
"Indian/Cocos",
"Indian/Comoro",
"Indian/Kerguelen",
"Indian/Mahe",
"Indian/Maldives",
"Indian/Mauritius",
"Indian/Mayotte",
"Indian/Reunion",
"Iran",
"Israel",
"Jamaica",
"Japan",
"Kwajalein",
"Libya",
"MET",
"MST",
"MST7MDT",
"Mexico/BajaNorte",
"Mexico/BajaSur",
"Mexico/General",
"NZ",
"NZ-CHAT",
"Navajo",
"PRC",
"PST8PDT",
"Pacific/Apia",
"Pacific/Auckland",
"Pacific/Bougainville",
"Pacific/Chatham",
"Pacific/Chuuk",
"Pacific/Easter",
"Pacific/Efate",
"Pacific/Enderbury",
"Pacific/Fakaofo",
"Pacific/Fiji",
"Pacific/Funafuti",
"Pacific/Galapagos",
"Pacific/Gambier",
"Pacific/Guadalcanal",
"Pacific/Guam",
"Pacific/Honolulu",
"Pacific/Johnston",
"Pacific/Kanton",
"Pacific/Kiritimati",
"Pacific/Kosrae",
"Pacific/Kwajalein",
"Pacific/Majuro",
"Pacific/Marquesas",
"Pacific/Midway",
"Pacific/Nauru",
"Pacific/Niue",
"Pacific/Norfolk",
"Pacific/Noumea",
"Pacific/Pago_Pago",
"Pacific/Palau",
"Pacific/Pitcairn",
"Pacific/Pohnpei",
"Pacific/Ponape",
"Pacific/Port_Moresby",
"Pacific/Rarotonga",
"Pacific/Saipan",
"Pacific/Samoa",
"Pacific/Tahiti",
"Pacific/Tarawa",
"Pacific/Tongatapu",
"Pacific/Truk",
"Pacific/Wake",
"Pacific/Wallis",
"Pacific/Yap",
"Poland",
"Portugal",
"ROC",
"ROK",
"Singapore",
"Turkey",
"UCT",
"US/Alaska",
"US/Aleutian",
"US/Arizona",
"US/Central",
"US/East-Indiana",
"US/Eastern",
"US/Hawaii",
"US/Indiana-Starke",
"US/Michigan",
"US/Mountain",
"US/Pacific",
"US/Samoa",
"UTC",
"Universal",
"W-SU",
"WET",
"Zulu"
]

In react there re multiple ways to do so, but you can get all timezone using countries-and-timezones library.

first import the library:

import TimezoneCountries from "countries-and-timezones";

after importing, paste below code snippet to get list of all timezones.

export function getAllTimezones() {
const allTimezones = Object.values(
TimezoneCountries.getAllTimezones({ deprecated: true })
).map((list) => ({
value: list.name,
label: `${list.name}`,
}));
return allTimezones;
}

you can also get country name and utc offset by adding following lines

list.countries //to get country names in which timezone is used
list.utcOffsetStr //to get UTC offset

read more about library here.

The API in Vanilla JavaScript for retrieving a list of all supported timezones:

Intl.supportedValuesOf('timeZone')

Browser/Platform Support:

  • Chrome 99 (v8 9.9)
  • Firefox 93
  • Safari 15.4
  • Edge 99
  • Node.js 18.0.0 (v8 10.1)
  • Official polyfill for other platforms which support the Intl API

To try it in Stack Overflow:

let select = document.querySelector('select');
if (!Intl.supportedValuesOf) {
let opt = new Option('Your browser does not support Intl.supportedValuesOf().', null, true, true);
opt.disabled = true;
select.options.add(opt);
} else {
for (const timeZone of Intl.supportedValuesOf('timeZone')) {
select.options.add(new Option(timeZone));
}
}
<select style="min-width: 20ch">


Side note: Above API only returnes IANA time zones (e.g. Continent/City_Name), not built in time zones, like "UTC" or "GMT". Check code snipped below for a list from Chrome/Firefox; other browsers/environments may have more built-in time zones.

const builtInTimeZones = [
'CET',
'CST6CDT',
'Cuba',
'EET',
'EST',
'EST5EDT',
'Egypt',
'Eire',
'GB',
'GB-Eire',
'GMT',
'GMT+0',
'GMT-0',
'GMT0',
'Greenwich',
'HST',
'Hongkong',
'Iceland',
'Iran',
'Israel',
'Jamaica',
'Japan',
'Kwajalein',
'Libya',
'MET',
'MST',
'MST7MDT',
'NZ',
'NZ-CHAT',
'Navajo',
'PRC',
'PST8PDT',
'Poland',
'Portugal',
'ROC',
'ROK',
'Singapore',
'Turkey',
'UCT',
'UTC',
'Universal',
'W-SU',
'WET',
'Zulu',
];
const supportedTimeZones = Intl.supportedValuesOf('timeZone');


const tbody = document.querySelector('tbody');
for (const timeZone of builtInTimeZones) {
const formatted = new Date().toLocaleString(undefined, { timeZone });
tbody.insertAdjacentHTML('beforeend', `
<tr>
<td>${timeZone}</td>
<td>${formatted}</td>
<td><code>${supportedTimeZones.includes(timeZone)}</code></td>
</tr>
`);
}
thead {
position: sticky;
top: 0px;
}
tr {
background: #fcfcfc;
color: #000;
}
tr:nth-child(2n + 1) {
background: #f6f6f6;
}
td {
padding: 0.25rem;
}
<table>
<thead>
<tr>
<th>Time zone name</th>
<th>Now in time zone</th>
<th>Reported by <code>supportedValuesOf?</code></th>
</tr>
</thead>
<tbody></tbody>
</table>

You can do it using moment where you could list all zones using moment.tz.names() or list all zones in a country with moment.tz.zonesForCountry(String).

import moment from 'moment-timezone'


moment.tz.names(); // ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", ...]
moment.tz.zonesForCountry('US'); // ["America/Adak", "America/Anchorage", ... "Pacific/Honolulu"]

BTW if you need to get an alias like Eastern Daylight Time or EDT for your timezone I would recommend to use a helper function with Intl.DateTimeFormat like so

const getTimeZoneName = (timeZone: string, nameType: 'short' | 'long') => {
const formatter = new Intl.DateTimeFormat(locale, { timeZone, timeZoneName: nameType })
const formatted = formatter.formatToParts(new Date())


return formatted.find(({ type }) => type === 'timeZoneName')?.value || ''
}