Created
September 3, 2025 18:08
-
-
Save dejurin/eed9a538c5ad443311817e1b1ffde86b to your computer and use it in GitHub Desktop.
abbr.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Variant type for clarity | |
| type TZVariant = { | |
| name: string; // Human-readable timezone name | |
| iana: string[]; // One or more IANA zones (first is canonical) | |
| note?: string; // Optional note (DST/legacy/unofficial/etc.) | |
| }; | |
| // Map: Abbreviation -> possible variants | |
| export const TZ_MAP_PART_A: Record<string, TZVariant[]> = { | |
| // Military letter zone. Note the inverted sign in Etc/GMT*: Etc/GMT-1 === UTC+1 | |
| A: [ | |
| { | |
| name: "Alfa Time Zone (Military)", | |
| iana: ["Etc/GMT-1"], | |
| note: "Fixed offset; use for UTC+1. Military letters are deprecated in civil use.", | |
| }, | |
| ], | |
| ACDT: [ | |
| { | |
| name: | |
| "Australian Central Daylight Time (CDT / CDST / Central Daylight Savings Time)", | |
| iana: ["Australia/Adelaide", "Australia/Broken_Hill"], | |
| note: "UTC+10:30 during DST in South Australia & Broken Hill.", | |
| }, | |
| ], | |
| ACST: [ | |
| { | |
| name: "Australian Central Standard Time (CST / Central Standard Time)", | |
| iana: ["Australia/Darwin", "Australia/Adelaide"], | |
| note: "UTC+9:30. Darwin is year-round; Adelaide uses it outside DST.", | |
| }, | |
| ], | |
| // ACT is ambiguous: "Acre Time" (Brazil, UTC−5) vs "Australian Central Time" (region label) | |
| ACT: [ | |
| { | |
| name: "Acre Time", | |
| iana: ["America/Rio_Branco", "America/Eirunepe"], | |
| note: "UTC−5 (western Brazil).", | |
| }, | |
| { | |
| name: "Australian Central Time", | |
| iana: ["Australia/Darwin", "Australia/Adelaide", "Australia/Broken_Hill"], | |
| note: | |
| "Region label (UTC+9:30 standard / UTC+10:30 DST). Prefer concrete zones above.", | |
| }, | |
| ], | |
| ACWST: [ | |
| { | |
| name: "Australian Central Western Standard Time", | |
| iana: ["Australia/Eucla"], | |
| note: "UTC+8:45 (semi-official local time).", | |
| }, | |
| ], | |
| // ADT is ambiguous: Arabia Daylight (historical) vs Atlantic Daylight (North America) | |
| ADT: [ | |
| { | |
| name: "Arabia Daylight Time (AST / Arabia Summer Time)", | |
| iana: ["Asia/Baghdad", "Asia/Riyadh"], | |
| note: | |
| "Historical/rare DST usage in the region; most countries do NOT observe DST now.", | |
| }, | |
| { | |
| name: | |
| "Atlantic Daylight Time (ADST / Atlantic Daylight Saving Time / HAA)", | |
| iana: [ | |
| "America/Halifax", | |
| "America/Glace_Bay", | |
| "America/Moncton", | |
| "Atlantic/Bermuda", | |
| "America/Goose_Bay", | |
| ], | |
| note: "UTC−3 in summer across Atlantic Canada & Bermuda.", | |
| }, | |
| ], | |
| AEDT: [ | |
| { | |
| name: | |
| "Australian Eastern Daylight Time (EDT / EDST / Eastern Daylight Saving Time)", | |
| iana: ["Australia/Sydney", "Australia/Melbourne", "Australia/Hobart"], | |
| note: "UTC+11 during DST.", | |
| }, | |
| ], | |
| AEST: [ | |
| { | |
| name: "Australian Eastern Standard Time (EST / AET)", | |
| iana: ["Australia/Brisbane", "Australia/Sydney", "Australia/Melbourne", "Australia/Hobart"], | |
| note: "UTC+10 (Brisbane is year-round; others in winter).", | |
| }, | |
| ], | |
| AET: [ | |
| { | |
| name: "Australian Eastern Time", | |
| iana: ["Australia/Sydney", "Australia/Melbourne", "Australia/Brisbane"], | |
| note: "Region label covering both AEST (UTC+10) and AEDT (UTC+11).", | |
| }, | |
| ], | |
| AFT: [ | |
| { | |
| name: "Afghanistan Time", | |
| iana: ["Asia/Kabul"], | |
| note: "UTC+4:30.", | |
| }, | |
| ], | |
| AKDT: [ | |
| { | |
| name: "Alaska Daylight Time (ADST / Alaska Daylight Saving Time)", | |
| iana: [ | |
| "America/Anchorage", | |
| "America/Juneau", | |
| "America/Sitka", | |
| "America/Nome", | |
| "America/Yakutat", | |
| ], | |
| note: "UTC−8 during DST.", | |
| }, | |
| ], | |
| AKST: [ | |
| { | |
| name: "Alaska Standard Time (AT / Alaska Time)", | |
| iana: [ | |
| "America/Anchorage", | |
| "America/Juneau", | |
| "America/Sitka", | |
| "America/Nome", | |
| "America/Yakutat", | |
| ], | |
| note: "UTC−9 standard time.", | |
| }, | |
| ], | |
| ALMT: [ | |
| { | |
| name: "Alma-Ata Time", | |
| iana: ["Asia/Almaty"], | |
| note: "UTC+6.", | |
| }, | |
| ], | |
| // AMST is ambiguous: Amazon Summer (Brazil, historical) vs Armenia Summer (historical) | |
| AMST: [ | |
| { | |
| name: "Amazon Summer Time", | |
| iana: ["America/Cuiaba", "America/Campo_Grande"], | |
| note: "UTC−3 (historical DST in parts of Brazil).", | |
| }, | |
| { | |
| name: "Armenia Summer Time (AMDT / Armenia Daylight Time)", | |
| iana: ["Asia/Yerevan"], | |
| note: "UTC+5 (historical DST).", | |
| }, | |
| ], | |
| // AMT is ambiguous: Amazon Time vs Armenia Time | |
| AMT: [ | |
| { | |
| name: "Amazon Time", | |
| iana: ["America/Manaus", "America/Porto_Velho", "America/Boa_Vista"], | |
| note: "UTC−4 (northern/western Brazil).", | |
| }, | |
| { | |
| name: "Armenia Time", | |
| iana: ["Asia/Yerevan"], | |
| note: "UTC+4.", | |
| }, | |
| ], | |
| ANAST: [ | |
| { | |
| name: "Anadyr Summer Time", | |
| iana: ["Asia/Anadyr"], | |
| note: "UTC+12 (historical DST; Russia abolished DST).", | |
| }, | |
| ], | |
| ANAT: [ | |
| { | |
| name: "Anadyr Time", | |
| iana: ["Asia/Anadyr"], | |
| note: "UTC+12 current standard time.", | |
| }, | |
| ], | |
| AQTT: [ | |
| { | |
| name: "Aqtobe Time", | |
| iana: ["Asia/Aqtobe"], | |
| note: "UTC+5.", | |
| }, | |
| ], | |
| ART: [ | |
| { | |
| name: "Argentina Time", | |
| iana: ["America/Argentina/Buenos_Aires"], | |
| note: "UTC−3; covers mainland Argentina.", | |
| }, | |
| ], | |
| // AST is ambiguous: Arabia vs Atlantic | |
| AST: [ | |
| { | |
| name: "Arabia Standard Time (Arabic/Al Manamah Standard Time)", | |
| iana: ["Asia/Riyadh", "Asia/Baghdad", "Asia/Bahrain", "Asia/Qatar", "Asia/Kuwait"], | |
| note: "UTC+3; no DST in most of the region.", | |
| }, | |
| { | |
| name: "Atlantic Standard Time (AT / HNA / Tiempo Estándar del Atlántico)", | |
| iana: ["America/Halifax", "America/Barbados", "America/Puerto_Rico", "America/Curacao"], | |
| note: "UTC−4; Caribbean & Atlantic Canada (winter).", | |
| }, | |
| ], | |
| AT: [ | |
| { | |
| name: "Atlantic Time", | |
| iana: ["America/Halifax", "Atlantic/Bermuda"], | |
| note: "Region label; uses AST (UTC−4) / ADT (UTC−3) with DST.", | |
| }, | |
| ], | |
| AWDT: [ | |
| { | |
| name: "Australian Western Daylight Time (WDT/WST - Western Summer Time)", | |
| iana: ["Australia/Perth"], | |
| note: "UTC+9; historical/rare DST in Western Australia.", | |
| }, | |
| ], | |
| AWST: [ | |
| { | |
| name: "Australian Western Standard Time (WST/WAT - Western Australia Time)", | |
| iana: ["Australia/Perth"], | |
| note: "UTC+8.", | |
| }, | |
| ], | |
| AZOST: [ | |
| { | |
| name: "Azores Summer Time (AZODT)", | |
| iana: ["Atlantic/Azores"], | |
| note: "DST time; UTC±0 during summer.", | |
| }, | |
| ], | |
| AZOT: [ | |
| { | |
| name: "Azores Standard Time (AZOST)", | |
| iana: ["Atlantic/Azores"], | |
| note: "Standard time; UTC−1 in winter.", | |
| }, | |
| ], | |
| AZST: [ | |
| { | |
| name: "Azerbaijan Summer Time", | |
| iana: ["Asia/Baku"], | |
| note: "UTC+5; historical DST (Azerbaijan abolished DST in 2016).", | |
| }, | |
| ], | |
| AZT: [ | |
| { | |
| name: "Azerbaijan Time", | |
| iana: ["Asia/Baku"], | |
| note: "UTC+4; current standard time.", | |
| }, | |
| ], | |
| AoE: [ | |
| { | |
| name: "Anywhere on Earth", | |
| iana: ["Etc/GMT+12"], | |
| note: "Fixed UTC−12 (Etc sign is inverted: GMT+12 == UTC−12).", | |
| }, | |
| ], | |
| B: [ | |
| { | |
| name: "Bravo Time Zone (Military)", | |
| iana: ["Etc/GMT-2"], | |
| note: "Fixed offset; use for UTC+2. Military letters are deprecated in civil use.", | |
| }, | |
| ], | |
| BNT: [ | |
| { | |
| name: "Brunei Darussalam Time (BDT)", | |
| iana: ["Asia/Brunei"], | |
| note: "UTC+8.", | |
| }, | |
| ], | |
| BOT: [ | |
| { | |
| name: "Bolivia Time", | |
| iana: ["America/La_Paz"], | |
| note: "UTC−4.", | |
| }, | |
| ], | |
| BRST: [ | |
| { | |
| name: "Brasília Summer Time (Brazilian DST)", | |
| iana: ["America/Sao_Paulo"], | |
| note: "UTC−2 during historical DST; Brazil abolished DST (2019).", | |
| }, | |
| ], | |
| BRT: [ | |
| { | |
| name: "Brasília Time (Brazil Time)", | |
| iana: ["America/Sao_Paulo"], | |
| note: "UTC−3 current standard time.", | |
| }, | |
| ], | |
| // BST is ambiguous: Bangladesh / Bougainville / British Summer | |
| BST: [ | |
| { | |
| name: "Bangladesh Standard Time", | |
| iana: ["Asia/Dhaka"], | |
| note: "UTC+6.", | |
| }, | |
| { | |
| name: "Bougainville Standard Time", | |
| iana: ["Pacific/Bougainville"], | |
| note: "UTC+11 (Papua New Guinea region).", | |
| }, | |
| { | |
| name: "British Summer Time (BDT/BDST)", | |
| iana: ["Europe/London"], | |
| note: "UTC+1 during UK DST.", | |
| }, | |
| ], | |
| BTT: [ | |
| { | |
| name: "Bhutan Time", | |
| iana: ["Asia/Thimphu"], | |
| note: "UTC+6.", | |
| }, | |
| ], | |
| // Military C: Etc/GMT-3 === UTC+3 | |
| C: [ | |
| { | |
| name: "Charlie Time Zone (Military)", | |
| iana: ["Etc/GMT-3"], | |
| note: "Fixed UTC+3.", | |
| }, | |
| ], | |
| CAST: [ | |
| { | |
| name: "Casey Time", | |
| iana: ["Antarctica/Casey"], | |
| note: "Station time; often UTC+8 (may change with operations).", | |
| }, | |
| ], | |
| CAT: [ | |
| { | |
| name: "Central Africa Time", | |
| iana: ["Africa/Maputo", "Africa/Harare", "Africa/Lusaka"], | |
| note: "UTC+2.", | |
| }, | |
| ], | |
| CCT: [ | |
| { | |
| name: "Cocos Islands Time", | |
| iana: ["Indian/Cocos"], | |
| note: "UTC+6:30.", | |
| }, | |
| ], | |
| // CDT ambiguous: North American Central Daylight vs Cuba Daylight | |
| CDT: [ | |
| { | |
| name: | |
| "Central Daylight Time (North America) / HAC (fr) / NACDT", | |
| iana: [ | |
| "America/Chicago", | |
| "America/Winnipeg", | |
| "America/Mexico_City", | |
| "America/Guatemala", | |
| ], | |
| note: "UTC−5 during DST.", | |
| }, | |
| { | |
| name: "Cuba Daylight Time", | |
| iana: ["America/Havana"], | |
| note: "UTC−4 during DST in Cuba.", | |
| }, | |
| ], | |
| CEST: [ | |
| { | |
| name: | |
| "Central European Summer Time (CEDT/ECST/MESZ)", | |
| iana: ["Europe/Berlin", "Europe/Paris", "Europe/Rome", "Europe/Madrid"], | |
| note: "UTC+2 during DST.", | |
| }, | |
| ], | |
| CET: [ | |
| { | |
| name: | |
| "Central European Time (ECT/MEZ)", | |
| iana: ["Europe/Berlin", "Europe/Paris", "Europe/Rome", "Europe/Madrid"], | |
| note: "UTC+1 standard time.", | |
| }, | |
| ], | |
| CHADT: [ | |
| { | |
| name: "Chatham Island Daylight Time (CDT)", | |
| iana: ["Pacific/Chatham"], | |
| note: "UTC+13:45 during DST.", | |
| }, | |
| ], | |
| CHAST: [ | |
| { | |
| name: "Chatham Island Standard Time", | |
| iana: ["Pacific/Chatham"], | |
| note: "UTC+12:45 standard time.", | |
| }, | |
| ], | |
| CHOST: [ | |
| { | |
| name: | |
| "Choibalsan Summer Time (CHODT/CHODST)", | |
| iana: ["Asia/Choibalsan"], | |
| note: "UTC+9 (historical DST).", | |
| }, | |
| ], | |
| CHOT: [ | |
| { | |
| name: "Choibalsan Time", | |
| iana: ["Asia/Choibalsan"], | |
| note: "UTC+8 current standard time.", | |
| }, | |
| ], | |
| CHUT: [ | |
| { | |
| name: "Chuuk Time", | |
| iana: ["Pacific/Chuuk"], | |
| note: "UTC+10.", | |
| }, | |
| ], | |
| // Cayman Islands: currently no DST; CIDST is effectively historical/unused | |
| CIDST: [ | |
| { | |
| name: "Cayman Islands Daylight Saving Time", | |
| iana: ["America/Cayman"], | |
| note: "No DST currently; kept for completeness.", | |
| }, | |
| ], | |
| CIST: [ | |
| { | |
| name: "Cayman Islands Standard Time (CIT)", | |
| iana: ["America/Cayman"], | |
| note: "UTC−5.", | |
| }, | |
| ], | |
| CKT: [ | |
| { | |
| name: "Cook Island Time", | |
| iana: ["Pacific/Rarotonga"], | |
| note: "UTC−10.", | |
| }, | |
| ], | |
| CLST: [ | |
| { | |
| name: "Chile Summer Time (CLDT)", | |
| iana: ["America/Santiago", "Antarctica/Palmer"], | |
| note: "UTC−3 during DST (mainland & Palmer Station).", | |
| }, | |
| ], | |
| CLT: [ | |
| { | |
| name: "Chile Standard Time (CLST label also seen historically)", | |
| iana: ["America/Santiago", "Antarctica/Palmer"], | |
| note: "UTC−4 standard time (mainland & Palmer Station).", | |
| }, | |
| ], | |
| COT: [ | |
| { | |
| name: "Colombia Time", | |
| iana: ["America/Bogota"], | |
| note: "UTC−5.", | |
| }, | |
| ], | |
| // CST ambiguous: North American Central / China / Cuba | |
| CST: [ | |
| { | |
| name: | |
| "Central Standard Time (North America) / NACST / HNC (fr)", | |
| iana: ["America/Chicago", "America/Winnipeg", "America/Guatemala"], | |
| note: "UTC−6 standard time.", | |
| }, | |
| { | |
| name: "China Standard Time", | |
| iana: ["Asia/Shanghai", "Asia/Urumqi"], | |
| note: "UTC+8; single civil time across mainland China.", | |
| }, | |
| { | |
| name: "Cuba Standard Time", | |
| iana: ["America/Havana"], | |
| note: "UTC−5 standard time in Cuba.", | |
| }, | |
| ], | |
| CT: [ | |
| { | |
| name: "Central Time (North America)", | |
| iana: ["America/Chicago", "America/Winnipeg", "America/Mexico_City"], | |
| note: "Region label; CST (UTC−6) / CDT (UTC−5) with DST.", | |
| }, | |
| ], | |
| CVT: [ | |
| { | |
| name: "Cape Verde Time", | |
| iana: ["Atlantic/Cape_Verde"], | |
| note: "UTC−1.", | |
| }, | |
| ], | |
| CXT: [ | |
| { | |
| name: "Christmas Island Time", | |
| iana: ["Indian/Christmas"], | |
| note: "UTC+7.", | |
| }, | |
| ], | |
| // The common abbreviation is "ChST" (capital C, lowercase h) | |
| ChST: [ | |
| { | |
| name: "Chamorro Standard Time (Guam Standard Time)", | |
| iana: ["Pacific/Guam", "Pacific/Saipan"], | |
| note: "UTC+10.", | |
| }, | |
| ], | |
| D: [{ name: "Delta Time Zone (Military)", iana: ["Etc/GMT-4"], note: "Fixed UTC+4." }], | |
| DAVT: [{ name: "Davis Time", iana: ["Antarctica/Davis"], note: "Typically UTC+7." }], | |
| DDUT: [{ name: "Dumont-d'Urville Time", iana: ["Antarctica/DumontDUrville"], note: "UTC+10." }], | |
| E: [{ name: "Echo Time Zone (Military)", iana: ["Etc/GMT-5"], note: "Fixed UTC+5." }], | |
| EASST: [{ name: "Easter Island Summer Time (EADT)", iana: ["Pacific/Easter"], note: "UTC−5 during DST." }], | |
| EAST: [{ name: "Easter Island Standard Time", iana: ["Pacific/Easter"], note: "UTC−6 standard." }], | |
| EAT: [ | |
| { | |
| name: "Eastern Africa Time", | |
| iana: ["Africa/Nairobi", "Africa/Addis_Ababa", "Africa/Dar_es_Salaam"], | |
| note: "UTC+3, no DST." | |
| }, | |
| ], | |
| ECT: [{ name: "Ecuador Time", iana: ["America/Guayaquil"], note: "UTC−5 (mainland)." }], | |
| EDT: [ | |
| { | |
| name: "Eastern Daylight Time (North America/Caribbean)", | |
| iana: ["America/New_York", "America/Toronto", "America/Nassau", "America/Port-au-Prince"], | |
| note: "UTC−4 during DST." | |
| }, | |
| ], | |
| EEST: [ | |
| { | |
| name: "Eastern European Summer Time", | |
| iana: ["Europe/Kyiv", "Europe/Athens", "Europe/Bucharest", "Asia/Beirut"], | |
| note: "UTC+3 during DST." | |
| }, | |
| ], | |
| EET: [ | |
| { | |
| name: "Eastern European Time", | |
| iana: ["Europe/Kyiv", "Europe/Athens", "Europe/Bucharest", "Asia/Nicosia"], | |
| note: "UTC+2 standard." | |
| }, | |
| ], | |
| EGST: [{ name: "Eastern Greenland Summer Time", iana: ["America/Scoresbysund"], note: "UTC±0 during DST." }], | |
| EGT: [{ name: "East Greenland Time", iana: ["America/Scoresbysund"], note: "UTC−1 standard." }], | |
| EST: [ | |
| { | |
| name: "Eastern Standard Time (North America/Caribbean/Central America)", | |
| iana: ["America/New_York", "America/Toronto", "America/Panama", "America/Jamaica"], | |
| note: "UTC−5 standard." | |
| }, | |
| ], | |
| ET: [ | |
| { | |
| name: "Eastern Time (region label)", | |
| iana: ["America/New_York", "America/Toronto"], | |
| note: "Covers EST (UTC−5) / EDT (UTC−4)." | |
| }, | |
| ], | |
| F: [{ name: "Foxtrot Time Zone (Military)", iana: ["Etc/GMT-6"], note: "Fixed UTC+6." }], | |
| FET: [{ name: "Further-Eastern European Time", iana: ["Europe/Minsk"], note: "UTC+3; no DST." }], | |
| FJST: [{ name: "Fiji Summer Time", iana: ["Pacific/Fiji"], note: "UTC+13 during DST (intermittent policy)." }], | |
| FJT: [{ name: "Fiji Time", iana: ["Pacific/Fiji"], note: "UTC+12 standard." }], | |
| FKST: [{ name: "Falkland Islands Summer Time", iana: ["Atlantic/Stanley"], note: "UTC−3 during DST (historical usage)." }], | |
| FKT: [{ name: "Falkland Island Time (Standard)", iana: ["Atlantic/Stanley"], note: "UTC−4 standard (historical)." }], | |
| FNT: [{ name: "Fernando de Noronha Time", iana: ["America/Noronha"], note: "UTC−2." }], | |
| G: [{ name: "Golf Time Zone (Military)", iana: ["Etc/GMT-7"], note: "Fixed UTC+7." }], | |
| GALT: [{ name: "Galapagos Time", iana: ["Pacific/Galapagos"], note: "UTC−6 (Galápagos Islands)." }], | |
| GAMT: [{ name: "Gambier Time", iana: ["Pacific/Gambier"], note: "UTC−9." }], | |
| GET: [{ name: "Georgia Standard Time", iana: ["Asia/Tbilisi"], note: "UTC+4." }], | |
| GFT: [{ name: "French Guiana Time", iana: ["America/Cayenne"], note: "UTC−3." }], | |
| GILT:[{ name: "Gilbert Island Time", iana: ["Pacific/Tarawa"], note: "UTC+12." }], | |
| GMT: [ | |
| { | |
| name: "Greenwich Mean Time / UTC", | |
| iana: ["Etc/UTC", "Etc/GMT"], | |
| note: "UTC±0; use Etc/UTC as canonical." | |
| }, | |
| ], | |
| // GST ambiguous: Gulf (UTC+4) vs South Georgia (UTC−2) | |
| GST: [ | |
| { name: "Gulf Standard Time", iana: ["Asia/Dubai", "Asia/Muscat"], note: "UTC+4; no DST." }, | |
| { name: "South Georgia Time", iana: ["Atlantic/South_Georgia"], note: "UTC−2." }, | |
| ], | |
| GYT: [{ name: "Guyana Time", iana: ["America/Guyana"], note: "UTC−4." }], | |
| H: [{ name: "Hotel Time Zone (Military)", iana: ["Etc/GMT-8"], note: "Fixed UTC+8." }], | |
| HDT: [ | |
| { | |
| name: "Hawaii-Aleutian Daylight Time", | |
| iana: ["America/Adak"], | |
| note: "UTC−9 during DST in Aleutians; Hawaii proper does not use DST." | |
| }, | |
| ], | |
| HKT: [{ name: "Hong Kong Time", iana: ["Asia/Hong_Kong"], note: "UTC+8." }], | |
| HOVST: [{ name: "Hovd Summer Time", iana: ["Asia/Hovd"], note: "UTC+8 (historical DST, Mongolia)." }], | |
| HOVT: [{ name: "Hovd Time", iana: ["Asia/Hovd"], note: "UTC+7 standard (Mongolia)." }], | |
| HST: [ | |
| { | |
| name: "Hawaii Standard Time (HAST/Hawaii–Aleutian Standard)", | |
| iana: ["Pacific/Honolulu", "America/Adak"], | |
| note: "UTC−10; Hawaii year-round, Aleutians in winter." | |
| }, | |
| ], | |
| I: [{ name: "India Time Zone (Military)", iana: ["Etc/GMT-9"], note: "Fixed UTC+9." }], | |
| ICT: [{ name: "Indochina Time", iana: ["Asia/Bangkok", "Asia/Ho_Chi_Minh", "Asia/Phnom_Penh", "Asia/Vientiane"], note: "UTC+7." }], | |
| IDT: [{ name: "Israel Daylight Time", iana: ["Asia/Jerusalem"], note: "UTC+3 during DST." }], | |
| IOT: [{ name: "Indian Chagos Time", iana: ["Indian/Chagos"], note: "UTC+6." }], | |
| IRDT: [ | |
| { | |
| name: "Iran Daylight Time (Iran Summer Time)", | |
| iana: ["Asia/Tehran"], | |
| note: "UTC+4:30 during DST (historical/periodic policy)." | |
| }, | |
| ], | |
| IRKST: [{ name: "Irkutsk Summer Time", iana: ["Asia/Irkutsk"], note: "UTC+9 (historical DST)." }], | |
| IRKT: [{ name: "Irkutsk Time", iana: ["Asia/Irkutsk"], note: "UTC+8 current." }], | |
| IRST: [{ name: "Iran Standard Time", iana: ["Asia/Tehran"], note: "UTC+3:30." }], | |
| // IST is highly ambiguous: India / Ireland / Israel | |
| IST: [ | |
| { name: "India Standard Time", iana: ["Asia/Kolkata"], note: "UTC+5:30." }, | |
| { name: "Irish Standard/Summer Time", iana: ["Europe/Dublin"], note: "UTC+1 during DST." }, | |
| { name: "Israel Standard Time", iana: ["Asia/Jerusalem"], note: "UTC+2 standard." }, | |
| ], | |
| JST: [{ name: "Japan Standard Time", iana: ["Asia/Tokyo"], note: "UTC+9." }], | |
| K: [{ name: "Kilo Time Zone (Military)", iana: ["Etc/GMT-10"], note: "Fixed UTC+10." }], | |
| KGT: [{ name: "Kyrgyzstan Time", iana: ["Asia/Bishkek"], note: "UTC+6." }], | |
| KOST:[{ name: "Kosrae Time", iana: ["Pacific/Kosrae"], note: "UTC+11." }], | |
| KRAST: [{ name: "Krasnoyarsk Summer Time", iana: ["Asia/Krasnoyarsk"], note: "UTC+8 (historical DST)." }], | |
| KRAT: [{ name: "Krasnoyarsk Time", iana: ["Asia/Krasnoyarsk"], note: "UTC+7 current." }], | |
| KST: [{ name: "Korea Standard Time", iana: ["Asia/Seoul"], note: "UTC+9." }], | |
| KUYT: [{ name: "Kuybyshev Time (Samara)", iana: ["Europe/Samara"], note: "UTC+4; modern Samara time." }], | |
| L: [{ name: "Lima Time Zone (Military)", iana: ["Etc/GMT-11"], note: "Fixed UTC+11." }], | |
| LHDT: [{ name: "Lord Howe Daylight Time", iana: ["Australia/Lord_Howe"], note: "UTC+11 during DST." }], | |
| LHST: [{ name: "Lord Howe Standard Time", iana: ["Australia/Lord_Howe"], note: "UTC+10:30 standard." }], | |
| LINT: [{ name: "Line Islands Time", iana: ["Pacific/Kiritimati"], note: "UTC+14." }], | |
| M: [{ name: "Mike Time Zone (Military)", iana: ["Etc/GMT-12"], note: "Fixed UTC+12." }], | |
| MAGST: [{ name: "Magadan Summer Time", iana: ["Asia/Magadan"], note: "UTC+12 (historical DST)." }], | |
| MAGT: [{ name: "Magadan Time", iana: ["Asia/Magadan"], note: "UTC+11 current." }], | |
| MART: [{ name: "Marquesas Time", iana: ["Pacific/Marquesas"], note: "UTC−9:30." }], | |
| MAWT: [{ name: "Mawson Time", iana: ["Antarctica/Mawson"], note: "UTC+5." }], | |
| MDT: [ | |
| { | |
| name: "Mountain Daylight Time (North America)", | |
| iana: ["America/Denver", "America/Edmonton"], | |
| note: "UTC−6 during DST. (Phoenix does not observe DST.)" | |
| }, | |
| ], | |
| MHT: [{ name: "Marshall Islands Time", iana: ["Pacific/Majuro", "Pacific/Kwajalein"], note: "UTC+12." }], | |
| MMT: [{ name: "Myanmar Time", iana: ["Asia/Yangon"], note: "UTC+6:30." }], | |
| MSD: [{ name: "Moscow Daylight Time", iana: ["Europe/Moscow"], note: "UTC+4 (historical DST)." }], | |
| MSK: [{ name: "Moscow Standard Time", iana: ["Europe/Moscow"], note: "UTC+3 current." }], | |
| MST: [ | |
| { | |
| name: "Mountain Standard Time (North America)", | |
| iana: ["America/Denver", "America/Phoenix"], | |
| note: "UTC−7 standard; Phoenix is year-round MST." | |
| }, | |
| ], | |
| MT: [ | |
| { | |
| name: "Mountain Time (region label)", | |
| iana: ["America/Denver", "America/Edmonton"], | |
| note: "Covers MST (UTC−7) / MDT (UTC−6)." | |
| }, | |
| ], | |
| MUT: [{ name: "Mauritius Time", iana: ["Indian/Mauritius"], note: "UTC+4." }], | |
| MVT: [{ name: "Maldives Time", iana: ["Indian/Maldives"], note: "UTC+5." }], | |
| MYT: [{ name: "Malaysia Time (Malaysian Standard Time)", iana: ["Asia/Kuala_Lumpur", "Asia/Kuching"], note: "UTC+8." }], | |
| // Military N: Etc/GMT+1 === UTC−1 | |
| N: [{ name: "November Time Zone (Military)", iana: ["Etc/GMT+1"], note: "Fixed UTC−1." }], | |
| NCT: [{ name: "New Caledonia Time", iana: ["Pacific/Noumea"], note: "UTC+11." }], | |
| NDT: [{ name: "Newfoundland Daylight Time", iana: ["America/St_Johns"], note: "UTC−2:30 during DST." }], | |
| NFDT:[{ name: "Norfolk Daylight Time", iana: ["Pacific/Norfolk"], note: "UTC+12 during historical DST." }], | |
| NFT: [{ name: "Norfolk Time (Norfolk Island Time)", iana: ["Pacific/Norfolk"], note: "UTC+11 standard (policy changed over years)." }], | |
| NOVST: [ | |
| { name: "Novosibirsk Summer Time", iana: ["Asia/Novosibirsk"], note: "UTC+7 (historical DST)." }, | |
| { name: "Omsk Summer Time", iana: ["Asia/Omsk"], note: "Historical DST in Omsk region." }, | |
| ], | |
| NOVT: [ | |
| { name: "Novosibirsk Time", iana: ["Asia/Novosibirsk"], note: "UTC+7 current." }, | |
| { name: "Omsk Standard Time", iana: ["Asia/Omsk"], note: "Today UTC+6; label historically varied." }, | |
| ], | |
| NPT: [{ name: "Nepal Time", iana: ["Asia/Kathmandu"], note: "UTC+5:45." }], | |
| NRT: [{ name: "Nauru Time", iana: ["Pacific/Nauru"], note: "UTC+12." }], | |
| NST: [{ name: "Newfoundland Standard Time", iana: ["America/St_Johns"], note: "UTC−3:30 standard." }], | |
| NUT: [{ name: "Niue Time", iana: ["Pacific/Niue"], note: "UTC−11." }], | |
| NZDT: [{ name: "New Zealand Daylight Time", iana: ["Pacific/Auckland", "Antarctica/McMurdo"], note: "UTC+13 during DST." }], | |
| NZST: [{ name: "New Zealand Standard Time", iana: ["Pacific/Auckland", "Antarctica/McMurdo"], note: "UTC+12 standard." }], | |
| // Military letters (Etc/GMT sign is inverted: Etc/GMT+2 === UTC−2) | |
| O: [{ name: "Oscar Time Zone (Military)", iana: ["Etc/GMT+2"], note: "Fixed UTC−2." }], | |
| OMSST: [{ name: "Omsk Summer Time (Novosibirsk Summer Time)", iana: ["Asia/Omsk"], note: "Historical DST ~UTC+7." }], | |
| OMST: [{ name: "Omsk Standard Time", iana: ["Asia/Omsk"], note: "UTC+6 current." }], | |
| ORAT: [{ name: "Oral Time", iana: ["Asia/Oral"], note: "UTC+5 (Kazakhstan)." }], | |
| P: [{ name: "Papa Time Zone (Military)", iana: ["Etc/GMT+3"], note: "Fixed UTC−3." }], | |
| PDT: [{ | |
| name: "Pacific Daylight Time (North America)", | |
| iana: ["America/Los_Angeles", "America/Vancouver", "America/Tijuana"], | |
| note: "UTC−7 during DST." | |
| }], | |
| PET: [{ name: "Peru Time", iana: ["America/Lima"], note: "UTC−5." }], | |
| // PETST (Kamchatka Summer) historically UTC+13; Russia no longer uses DST | |
| PETST: [{ name: "Kamchatka Summer Time", iana: ["Asia/Kamchatka"], note: "Historical DST (~UTC+13)." }], | |
| PETT: [{ name: "Kamchatka Time", iana: ["Asia/Kamchatka"], note: "UTC+12 current." }], | |
| PGT: [{ name: "Papua New Guinea Time", iana: ["Pacific/Port_Moresby"], note: "UTC+10 (Bougainville uses UTC+11)." }], | |
| PHOT: [{ name: "Phoenix Island Time", iana: ["Pacific/Kanton"], note: "UTC+13." }], | |
| PHT: [{ name: "Philippine Time (Philippine Standard Time)", iana: ["Asia/Manila"], note: "UTC+8." }], | |
| PKT: [{ name: "Pakistan Standard Time", iana: ["Asia/Karachi"], note: "UTC+5." }], | |
| PMDT: [{ name: "Saint Pierre & Miquelon Daylight Time", iana: ["America/Miquelon"], note: "UTC−2 during DST." }], | |
| PMST: [{ name: "Saint Pierre & Miquelon Standard Time", iana: ["America/Miquelon"], note: "UTC−3 standard." }], | |
| PONT: [{ name: "Pohnpei Standard Time", iana: ["Pacific/Pohnpei"], note: "UTC+11." }], | |
| // PST ambiguous: Pacific (North America) vs Pitcairn | |
| PST: [ | |
| { | |
| name: "Pacific Standard Time (North America)", | |
| iana: ["America/Los_Angeles", "America/Vancouver", "America/Tijuana"], | |
| note: "UTC−8 standard." | |
| }, | |
| { | |
| name: "Pitcairn Standard Time", | |
| iana: ["Pacific/Pitcairn"], | |
| note: "UTC−8 (Pitcairn Islands)." | |
| }, | |
| ], | |
| PT: [{ | |
| name: "Pacific Time (region label)", | |
| iana: ["America/Los_Angeles", "America/Vancouver"], | |
| note: "Covers PST (UTC−8) / PDT (UTC−7)." | |
| }], | |
| PWT: [{ name: "Palau Time", iana: ["Pacific/Palau"], note: "UTC+9." }], | |
| PYST: [{ name: "Paraguay Summer Time", iana: ["America/Asuncion"], note: "UTC−3 during DST (policy has varied)." }], | |
| // PYT ambiguous: Paraguay vs Pyongyang (historical) | |
| PYT: [ | |
| { name: "Paraguay Time", iana: ["America/Asuncion"], note: "UTC−4 standard. (Иногда источник указывает −3 — это летнее время PYST.)" }, | |
| { name: "Pyongyang Time", iana: ["Asia/Pyongyang"], note: "UTC+8:30 (2015–2018); сейчас КНДР использует UTC+9 (KST)." }, | |
| ], | |
| Q: [{ name: "Quebec Time Zone (Military)", iana: ["Etc/GMT+4"], note: "Fixed UTC−4." }], | |
| // Qyzylorda moved to UTC+5 in 2018 | |
| QYZT: [{ name: "Qyzylorda Time", iana: ["Asia/Qyzylorda"], note: "UTC+5 current; historical UTC+6." }], | |
| R: [{ name: "Romeo Time Zone (Military)", iana: ["Etc/GMT+5"], note: "Fixed UTC−5." }], | |
| RET: [{ name: "Réunion Time", iana: ["Indian/Reunion"], note: "UTC+4." }], | |
| ROTT: [{ name: "Rothera Time", iana: ["Antarctica/Rothera"], note: "UTC−3 (British Antarctic Survey)." }], | |
| S: [{ name: "Sierra Time Zone (Military)", iana: ["Etc/GMT+6"], note: "Fixed UTC−6." }], | |
| SAKT: [{ name: "Sakhalin Time", iana: ["Asia/Sakhalin"], note: "UTC+11." }], | |
| SAMT: [{ name: "Samara Time", iana: ["Europe/Samara"], note: "UTC+4." }], | |
| SAST: [{ name: "South Africa Standard Time", iana: ["Africa/Johannesburg"], note: "UTC+2." }], | |
| SBT: [{ name: "Solomon Islands Time", iana: ["Pacific/Guadalcanal"], note: "UTC+11." }], | |
| SCT: [{ name: "Seychelles Time", iana: ["Indian/Mahe"], note: "UTC+4." }], | |
| SGT: [{ name: "Singapore Time (Singapore Standard Time)", iana: ["Asia/Singapore"], note: "UTC+8." }], | |
| SRET: [{ name: "Srednekolymsk Time", iana: ["Asia/Srednekolymsk"], note: "UTC+11." }], | |
| SRT: [{ name: "Suriname Time", iana: ["America/Paramaribo"], note: "UTC−3." }], | |
| SST: [{ name: "Samoa Standard Time", iana: ["Pacific/Pago_Pago"], note: "UTC−11." }], | |
| SYOT: [{ name: "Syowa Time", iana: ["Antarctica/Syowa"], note: "UTC+3 (Japan's Syowa Station)." }], | |
| T: [{ name: "Tango Time Zone (Military)", iana: ["Etc/GMT+7"], note: "Fixed UTC−7." }], | |
| TAHT: [{ name: "Tahiti Time", iana: ["Pacific/Tahiti"], note: "UTC−10." }], | |
| TFT: [{ name: "French Southern and Antarctic Time (Kerguelen)", iana: ["Indian/Kerguelen"], note: "UTC+5." }], | |
| TJT: [{ name: "Tajikistan Time", iana: ["Asia/Dushanbe"], note: "UTC+5." }], | |
| TKT: [{ name: "Tokelau Time", iana: ["Pacific/Fakaofo"], note: "UTC+13." }], | |
| TLT: [{ name: "East Timor Time", iana: ["Asia/Dili"], note: "UTC+9." }], | |
| TMT: [{ name: "Turkmenistan Time", iana: ["Asia/Ashgabat"], note: "UTC+5." }], | |
| TOST: [{ name: "Tonga Summer Time", iana: ["Pacific/Tongatapu"], note: "UTC+14 during DST (historical/policy-based)." }], | |
| TOT: [{ name: "Tonga Time", iana: ["Pacific/Tongatapu"], note: "UTC+13." }], | |
| TRT: [{ name: "Turkey Time", iana: ["Europe/Istanbul"], note: "UTC+3 year-round since 2016." }], | |
| TVT: [{ name: "Tuvalu Time", iana: ["Pacific/Funafuti"], note: "UTC+12." }], | |
| // Military letters (Etc/GMT sign is inverted: Etc/GMT+8 === UTC−8) | |
| U: [{ name: "Uniform Time Zone (Military)", iana: ["Etc/GMT+8"], note: "Fixed UTC−8." }], | |
| ULAST:[{ name: "Ulaanbaatar Summer Time", iana: ["Asia/Ulaanbaatar"], note: "UTC+9 (historical DST)." }], | |
| ULAT: [{ name: "Ulaanbaatar Time", iana: ["Asia/Ulaanbaatar"], note: "UTC+8." }], | |
| UTC: [{ name: "Coordinated Universal Time", iana: ["Etc/UTC"], note: "UTC±0; canonical base." }], | |
| UYST: [{ name: "Uruguay Summer Time", iana: ["America/Montevideo"], note: "UTC−2 (historical DST)." }], | |
| UYT: [{ name: "Uruguay Time", iana: ["America/Montevideo"], note: "UTC−3." }], | |
| UZT: [{ name: "Uzbekistan Time", iana: ["Asia/Tashkent"], note: "UTC+5." }], | |
| // Military letters (Etc/GMT+9 === UTC−9) | |
| V: [{ name: "Victor Time Zone (Military)", iana: ["Etc/GMT+9"], note: "Fixed UTC−9." }], | |
| VET: [{ name: "Venezuelan Standard Time", iana: ["America/Caracas"], note: "UTC−4 (since 2016)." }], | |
| VLAST:[{ name: "Vladivostok Summer Time", iana: ["Asia/Vladivostok"], note: "UTC+11 (historical DST)." }], | |
| VLAT: [{ name: "Vladivostok Time", iana: ["Asia/Vladivostok"], note: "UTC+10 current." }], | |
| VOST: [{ name: "Vostok Time", iana: ["Antarctica/Vostok"], note: "UTC+6." }], | |
| VUT: [{ name: "Vanuatu Time (Efate)", iana: ["Pacific/Efate"], note: "UTC+11." }], | |
| // Military letters (Etc/GMT+10 === UTC−10) | |
| W: [{ name: "Whiskey Time Zone (Military)", iana: ["Etc/GMT+10"], note: "Fixed UTC−10." }], | |
| WAKT: [{ name: "Wake Time", iana: ["Pacific/Wake"], note: "UTC+12." }], | |
| WARST:[{ name: "Western Argentine Summer Time", iana: ["America/Argentina/San_Luis"], note: "UTC−3 (historical DST in western provinces)." }], | |
| // Namibia used DST historically (WAST); today Africa/Windhoek stays UTC+2 | |
| WAST: [{ name: "West Africa Summer Time", iana: ["Africa/Windhoek"], note: "Historical DST designation." }], | |
| WAT: [{ name: "West Africa Time", iana: ["Africa/Lagos", "Africa/Luanda", "Africa/Libreville"], note: "UTC+1." }], | |
| WEST: [{ name: "Western European Summer Time", iana: ["Europe/Lisbon", "Atlantic/Canary", "Atlantic/Madeira"], note: "UTC+1 during DST." }], | |
| WET: [{ name: "Western European Time (GMT)", iana: ["Europe/Lisbon", "Atlantic/Canary", "Atlantic/Madeira"], note: "UTC±0 standard." }], | |
| WFT: [{ name: "Wallis and Futuna Time", iana: ["Pacific/Wallis"], note: "UTC+12." }], | |
| // Greenland (West): standard WGT UTC−3; DST WGST UTC−2 | |
| WGST: [{ name: "Western Greenland Summer Time", iana: ["America/Nuuk"], note: "UTC−2 during DST (policy changes in 2019)." }], | |
| WGT: [{ name: "Western Greenland Time", iana: ["America/Nuuk"], note: "UTC−3 standard." }], | |
| WIB: [{ name: "Western Indonesian Time (Waktu Indonesia Barat)", iana: ["Asia/Jakarta", "Asia/Pontianak"], note: "UTC+7." }], | |
| WIT: [{ name: "Eastern Indonesian Time (Waktu Indonesia Timur)", iana: ["Asia/Jayapura"], note: "UTC+9." }], | |
| WITA: [{ name: "Central Indonesian Time (Waktu Indonesia Tengah)", iana: ["Asia/Makassar", "Asia/Denpasar"], note: "UTC+8." }], | |
| // Samoa: present-day Pacific/Apia (policy shifted; UTC+13 standard, DST intermittent) | |
| WST: [ | |
| { name: "West Samoa Time (Samoa Time)", iana: ["Pacific/Apia"], note: "UTC+13 standard; DST policies varied." }, | |
| { name: "Western Sahara Summer Time", iana: ["Africa/El_Aaiun"], note: "UTC+1 (historical/seasonal policy)." }, | |
| ], | |
| WT: [{ name: "Western Sahara Standard Time", iana: ["Africa/El_Aaiun"], note: "UTC±0 standard." }], | |
| // Military letters | |
| X: [{ name: "X-ray Time Zone (Military)", iana: ["Etc/GMT+11"], note: "Fixed UTC−11." }], | |
| Y: [{ name: "Yankee Time Zone (Military)", iana: ["Etc/GMT+12"], note: "Fixed UTC−12." }], | |
| YAKST:[{ name: "Yakutsk Summer Time", iana: ["Asia/Yakutsk"], note: "UTC+10 (historical DST)." }], | |
| YAKT: [{ name: "Yakutsk Time", iana: ["Asia/Yakutsk"], note: "UTC+9 current." }], | |
| YAPT: [{ name: "Yap Time", iana: ["Pacific/Yap"], note: "UTC+10." }], | |
| YEKST:[{ name: "Yekaterinburg Summer Time", iana: ["Asia/Yekaterinburg"], note: "UTC+6 (historical DST)." }], | |
| YEKT: [{ name: "Yekaterinburg Time", iana: ["Asia/Yekaterinburg"], note: "UTC+5 current." }], | |
| // Military Zulu | |
| Z: [{ name: "Zulu Time Zone (Military)", iana: ["Etc/UTC"], note: "UTC±0; same as UTC." }], | |
| } as const; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment