timezones.ts1221 lines · main
1// https://github.com/dmfilipenko/timezones.json/blob/master/timezones.json
2export interface Timezone {
3 value: string
4 abbr: string
5 offset: number
6 isdst: boolean
7 text: string
8 utc: string[]
9}
10
11export const ALL_TIMEZONES: Timezone[] = [
12 {
13 value: 'Dateline Standard Time',
14 abbr: 'DST',
15 offset: -12,
16 isdst: false,
17 text: '(UTC-12:00) International Date Line West',
18 utc: ['Etc/GMT+12'],
19 },
20 {
21 value: 'UTC-11',
22 abbr: 'U',
23 offset: -11,
24 isdst: false,
25 text: '(UTC-11:00) Coordinated Universal Time-11',
26 utc: ['Etc/GMT+11', 'Pacific/Midway', 'Pacific/Niue', 'Pacific/Pago_Pago'],
27 },
28 {
29 value: 'Hawaiian Standard Time',
30 abbr: 'HST',
31 offset: -10,
32 isdst: false,
33 text: '(UTC-10:00) Hawaii',
34 utc: [
35 'Etc/GMT+10',
36 'Pacific/Honolulu',
37 'Pacific/Johnston',
38 'Pacific/Rarotonga',
39 'Pacific/Tahiti',
40 ],
41 },
42 {
43 value: 'Alaskan Standard Time',
44 abbr: 'AKDT',
45 offset: -8,
46 isdst: true,
47 text: '(UTC-09:00) Alaska',
48 utc: [
49 'America/Anchorage',
50 'America/Juneau',
51 'America/Nome',
52 'America/Sitka',
53 'America/Yakutat',
54 ],
55 },
56 {
57 value: 'Pacific Standard Time (Mexico)',
58 abbr: 'PDT',
59 offset: -7,
60 isdst: true,
61 text: '(UTC-08:00) Baja California',
62 utc: ['America/Santa_Isabel'],
63 },
64 {
65 value: 'Pacific Daylight Time',
66 abbr: 'PDT',
67 offset: -7,
68 isdst: true,
69 text: '(UTC-07:00) Pacific Daylight Time (US & Canada)',
70 utc: ['America/Los_Angeles', 'America/Tijuana', 'America/Vancouver'],
71 },
72 {
73 value: 'Pacific Standard Time',
74 abbr: 'PST',
75 offset: -8,
76 isdst: false,
77 text: '(UTC-08:00) Pacific Standard Time (US & Canada)',
78 utc: ['America/Los_Angeles', 'America/Tijuana', 'America/Vancouver', 'PST8PDT'],
79 },
80 {
81 value: 'US Mountain Standard Time',
82 abbr: 'UMST',
83 offset: -7,
84 isdst: false,
85 text: '(UTC-07:00) Arizona',
86 utc: [
87 'America/Creston',
88 'America/Dawson',
89 'America/Dawson_Creek',
90 'America/Hermosillo',
91 'America/Phoenix',
92 'America/Whitehorse',
93 'Etc/GMT+7',
94 ],
95 },
96 {
97 value: 'Mountain Standard Time (Mexico)',
98 abbr: 'MDT',
99 offset: -6,
100 isdst: true,
101 text: '(UTC-07:00) Chihuahua, La Paz, Mazatlan',
102 utc: ['America/Chihuahua', 'America/Mazatlan'],
103 },
104 {
105 value: 'Mountain Standard Time',
106 abbr: 'MDT',
107 offset: -6,
108 isdst: true,
109 text: '(UTC-07:00) Mountain Time (US & Canada)',
110 utc: [
111 'America/Boise',
112 'America/Cambridge_Bay',
113 'America/Denver',
114 'America/Edmonton',
115 'America/Inuvik',
116 'America/Ojinaga',
117 'America/Yellowknife',
118 'MST7MDT',
119 ],
120 },
121 {
122 value: 'Central America Standard Time',
123 abbr: 'CAST',
124 offset: -6,
125 isdst: false,
126 text: '(UTC-06:00) Central America',
127 utc: [
128 'America/Belize',
129 'America/Costa_Rica',
130 'America/El_Salvador',
131 'America/Guatemala',
132 'America/Managua',
133 'America/Tegucigalpa',
134 'Etc/GMT+6',
135 'Pacific/Galapagos',
136 ],
137 },
138 {
139 value: 'Central Standard Time',
140 abbr: 'CDT',
141 offset: -5,
142 isdst: true,
143 text: '(UTC-06:00) Central Time (US & Canada)',
144 utc: [
145 'America/Chicago',
146 'America/Indiana/Knox',
147 'America/Indiana/Tell_City',
148 'America/Matamoros',
149 'America/Menominee',
150 'America/North_Dakota/Beulah',
151 'America/North_Dakota/Center',
152 'America/North_Dakota/New_Salem',
153 'America/Rainy_River',
154 'America/Rankin_Inlet',
155 'America/Resolute',
156 'America/Winnipeg',
157 'CST6CDT',
158 ],
159 },
160 {
161 value: 'Central Standard Time (Mexico)',
162 abbr: 'CDT',
163 offset: -5,
164 isdst: true,
165 text: '(UTC-06:00) Guadalajara, Mexico City, Monterrey',
166 utc: [
167 'America/Bahia_Banderas',
168 'America/Cancun',
169 'America/Merida',
170 'America/Mexico_City',
171 'America/Monterrey',
172 ],
173 },
174 {
175 value: 'Canada Central Standard Time',
176 abbr: 'CCST',
177 offset: -6,
178 isdst: false,
179 text: '(UTC-06:00) Saskatchewan',
180 utc: ['America/Regina', 'America/Swift_Current'],
181 },
182 {
183 value: 'SA Pacific Standard Time',
184 abbr: 'SPST',
185 offset: -5,
186 isdst: false,
187 text: '(UTC-05:00) Bogota, Lima, Quito',
188 utc: [
189 'America/Bogota',
190 'America/Cayman',
191 'America/Coral_Harbour',
192 'America/Eirunepe',
193 'America/Guayaquil',
194 'America/Jamaica',
195 'America/Lima',
196 'America/Panama',
197 'America/Rio_Branco',
198 'Etc/GMT+5',
199 ],
200 },
201 {
202 value: 'Eastern Standard Time',
203 abbr: 'EST',
204 offset: -5,
205 isdst: false,
206 text: '(UTC-05:00) Eastern Time (US & Canada)',
207 utc: [
208 'America/Detroit',
209 'America/Havana',
210 'America/Indiana/Petersburg',
211 'America/Indiana/Vincennes',
212 'America/Indiana/Winamac',
213 'America/Iqaluit',
214 'America/Kentucky/Monticello',
215 'America/Louisville',
216 'America/Montreal',
217 'America/Nassau',
218 'America/New_York',
219 'America/Nipigon',
220 'America/Pangnirtung',
221 'America/Port-au-Prince',
222 'America/Thunder_Bay',
223 'America/Toronto',
224 ],
225 },
226 {
227 value: 'Eastern Daylight Time',
228 abbr: 'EDT',
229 offset: -4,
230 isdst: true,
231 text: '(UTC-04:00) Eastern Daylight Time (US & Canada)',
232 utc: [
233 'America/Detroit',
234 'America/Havana',
235 'America/Indiana/Petersburg',
236 'America/Indiana/Vincennes',
237 'America/Indiana/Winamac',
238 'America/Iqaluit',
239 'America/Kentucky/Monticello',
240 'America/Louisville',
241 'America/Montreal',
242 'America/Nassau',
243 'America/New_York',
244 'America/Nipigon',
245 'America/Pangnirtung',
246 'America/Port-au-Prince',
247 'America/Thunder_Bay',
248 'America/Toronto',
249 ],
250 },
251 {
252 value: 'US Eastern Standard Time',
253 abbr: 'UEDT',
254 offset: -5,
255 isdst: false,
256 text: '(UTC-05:00) Indiana (East)',
257 utc: ['America/Indiana/Marengo', 'America/Indiana/Vevay', 'America/Indianapolis'],
258 },
259 {
260 value: 'Venezuela Standard Time',
261 abbr: 'VST',
262 offset: -4.5,
263 isdst: false,
264 text: '(UTC-04:30) Caracas',
265 utc: ['America/Caracas'],
266 },
267 {
268 value: 'Paraguay Standard Time',
269 abbr: 'PYT',
270 offset: -4,
271 isdst: false,
272 text: '(UTC-04:00) Asuncion',
273 utc: ['America/Asuncion'],
274 },
275 {
276 value: 'Atlantic Standard Time',
277 abbr: 'ADT',
278 offset: -3,
279 isdst: true,
280 text: '(UTC-04:00) Atlantic Time (Canada)',
281 utc: [
282 'America/Glace_Bay',
283 'America/Goose_Bay',
284 'America/Halifax',
285 'America/Moncton',
286 'America/Thule',
287 'Atlantic/Bermuda',
288 ],
289 },
290 {
291 value: 'Central Brazilian Standard Time',
292 abbr: 'CBST',
293 offset: -4,
294 isdst: false,
295 text: '(UTC-04:00) Cuiaba',
296 utc: ['America/Campo_Grande', 'America/Cuiaba'],
297 },
298 {
299 value: 'SA Western Standard Time',
300 abbr: 'SWST',
301 offset: -4,
302 isdst: false,
303 text: '(UTC-04:00) Georgetown, La Paz, Manaus, San Juan',
304 utc: [
305 'America/Anguilla',
306 'America/Antigua',
307 'America/Aruba',
308 'America/Barbados',
309 'America/Blanc-Sablon',
310 'America/Boa_Vista',
311 'America/Curacao',
312 'America/Dominica',
313 'America/Grand_Turk',
314 'America/Grenada',
315 'America/Guadeloupe',
316 'America/Guyana',
317 'America/Kralendijk',
318 'America/La_Paz',
319 'America/Lower_Princes',
320 'America/Manaus',
321 'America/Marigot',
322 'America/Martinique',
323 'America/Montserrat',
324 'America/Port_of_Spain',
325 'America/Porto_Velho',
326 'America/Puerto_Rico',
327 'America/Santo_Domingo',
328 'America/St_Barthelemy',
329 'America/St_Kitts',
330 'America/St_Lucia',
331 'America/St_Thomas',
332 'America/St_Vincent',
333 'America/Tortola',
334 'Etc/GMT+4',
335 ],
336 },
337 {
338 value: 'Pacific SA Standard Time',
339 abbr: 'PSST',
340 offset: -4,
341 isdst: false,
342 text: '(UTC-04:00) Santiago',
343 utc: ['America/Santiago', 'Antarctica/Palmer'],
344 },
345 {
346 value: 'Newfoundland Standard Time',
347 abbr: 'NDT',
348 offset: -2.5,
349 isdst: true,
350 text: '(UTC-03:30) Newfoundland',
351 utc: ['America/St_Johns'],
352 },
353 {
354 value: 'E. South America Standard Time',
355 abbr: 'ESAST',
356 offset: -3,
357 isdst: false,
358 text: '(UTC-03:00) Brasilia',
359 utc: ['America/Sao_Paulo'],
360 },
361 {
362 value: 'Argentina Standard Time',
363 abbr: 'AST',
364 offset: -3,
365 isdst: false,
366 text: '(UTC-03:00) Buenos Aires',
367 utc: [
368 'America/Argentina/La_Rioja',
369 'America/Argentina/Rio_Gallegos',
370 'America/Argentina/Salta',
371 'America/Argentina/San_Juan',
372 'America/Argentina/San_Luis',
373 'America/Argentina/Tucuman',
374 'America/Argentina/Ushuaia',
375 'America/Buenos_Aires',
376 'America/Catamarca',
377 'America/Cordoba',
378 'America/Jujuy',
379 'America/Mendoza',
380 ],
381 },
382 {
383 value: 'SA Eastern Standard Time',
384 abbr: 'SEST',
385 offset: -3,
386 isdst: false,
387 text: '(UTC-03:00) Cayenne, Fortaleza',
388 utc: [
389 'America/Araguaina',
390 'America/Belem',
391 'America/Cayenne',
392 'America/Fortaleza',
393 'America/Maceio',
394 'America/Paramaribo',
395 'America/Recife',
396 'America/Santarem',
397 'Antarctica/Rothera',
398 'Atlantic/Stanley',
399 'Etc/GMT+3',
400 ],
401 },
402 {
403 value: 'Greenland Standard Time',
404 abbr: 'GDT',
405 offset: -3,
406 isdst: true,
407 text: '(UTC-03:00) Greenland',
408 utc: ['America/Godthab'],
409 },
410 {
411 value: 'Montevideo Standard Time',
412 abbr: 'MST',
413 offset: -3,
414 isdst: false,
415 text: '(UTC-03:00) Montevideo',
416 utc: ['America/Montevideo'],
417 },
418 {
419 value: 'Bahia Standard Time',
420 abbr: 'BST',
421 offset: -3,
422 isdst: false,
423 text: '(UTC-03:00) Salvador',
424 utc: ['America/Bahia'],
425 },
426 {
427 value: 'UTC-02',
428 abbr: 'U',
429 offset: -2,
430 isdst: false,
431 text: '(UTC-02:00) Coordinated Universal Time-02',
432 utc: ['America/Noronha', 'Atlantic/South_Georgia', 'Etc/GMT+2'],
433 },
434 {
435 value: 'Azores Standard Time',
436 abbr: 'ADT',
437 offset: 0,
438 isdst: true,
439 text: '(UTC-01:00) Azores',
440 utc: ['America/Scoresbysund', 'Atlantic/Azores'],
441 },
442 {
443 value: 'Cape Verde Standard Time',
444 abbr: 'CVST',
445 offset: -1,
446 isdst: false,
447 text: '(UTC-01:00) Cape Verde Is.',
448 utc: ['Atlantic/Cape_Verde', 'Etc/GMT+1'],
449 },
450 {
451 value: 'Morocco Standard Time',
452 abbr: 'MDT',
453 offset: 1,
454 isdst: true,
455 text: '(UTC) Casablanca',
456 utc: ['Africa/Casablanca', 'Africa/El_Aaiun'],
457 },
458 {
459 value: 'UTC',
460 abbr: 'UTC',
461 offset: 0,
462 isdst: false,
463 text: '(UTC) Coordinated Universal Time',
464 utc: ['America/Danmarkshavn', 'Etc/GMT'],
465 },
466 {
467 value: 'British Summer Time',
468 abbr: 'BST',
469 offset: 1,
470 isdst: true,
471 text: '(UTC+01:00) Edinburgh, London',
472 utc: ['Europe/Isle_of_Man', 'Europe/Guernsey', 'Europe/Jersey', 'Europe/London'],
473 },
474 {
475 value: 'GMT Standard Time',
476 abbr: 'GDT',
477 offset: 1,
478 isdst: true,
479 text: '(UTC) Dublin, Lisbon',
480 utc: [
481 'Atlantic/Canary',
482 'Atlantic/Faeroe',
483 'Atlantic/Madeira',
484 'Europe/Dublin',
485 'Europe/Lisbon',
486 ],
487 },
488 {
489 value: 'Greenwich Standard Time',
490 abbr: 'GST',
491 offset: 0,
492 isdst: false,
493 text: '(UTC) Monrovia, Reykjavik',
494 utc: [
495 'Africa/Abidjan',
496 'Africa/Accra',
497 'Africa/Bamako',
498 'Africa/Banjul',
499 'Africa/Bissau',
500 'Africa/Conakry',
501 'Africa/Dakar',
502 'Africa/Freetown',
503 'Africa/Lome',
504 'Africa/Monrovia',
505 'Africa/Nouakchott',
506 'Africa/Ouagadougou',
507 'Africa/Sao_Tome',
508 'Atlantic/Reykjavik',
509 'Atlantic/St_Helena',
510 ],
511 },
512 {
513 value: 'W. Europe Standard Time',
514 abbr: 'WEDT',
515 offset: 2,
516 isdst: true,
517 text: '(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna',
518 utc: [
519 'Arctic/Longyearbyen',
520 'Europe/Amsterdam',
521 'Europe/Andorra',
522 'Europe/Berlin',
523 'Europe/Busingen',
524 'Europe/Gibraltar',
525 'Europe/Luxembourg',
526 'Europe/Malta',
527 'Europe/Monaco',
528 'Europe/Oslo',
529 'Europe/Rome',
530 'Europe/San_Marino',
531 'Europe/Stockholm',
532 'Europe/Vaduz',
533 'Europe/Vatican',
534 'Europe/Vienna',
535 'Europe/Zurich',
536 ],
537 },
538 {
539 value: 'Central Europe Standard Time',
540 abbr: 'CEDT',
541 offset: 2,
542 isdst: true,
543 text: '(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague',
544 utc: [
545 'Europe/Belgrade',
546 'Europe/Bratislava',
547 'Europe/Budapest',
548 'Europe/Ljubljana',
549 'Europe/Podgorica',
550 'Europe/Prague',
551 'Europe/Tirane',
552 ],
553 },
554 {
555 value: 'Romance Standard Time',
556 abbr: 'RDT',
557 offset: 2,
558 isdst: true,
559 text: '(UTC+01:00) Brussels, Copenhagen, Madrid, Paris',
560 utc: ['Africa/Ceuta', 'Europe/Brussels', 'Europe/Copenhagen', 'Europe/Madrid', 'Europe/Paris'],
561 },
562 {
563 value: 'Central European Standard Time',
564 abbr: 'CEDT',
565 offset: 2,
566 isdst: true,
567 text: '(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb',
568 utc: ['Europe/Sarajevo', 'Europe/Skopje', 'Europe/Warsaw', 'Europe/Zagreb'],
569 },
570 {
571 value: 'W. Central Africa Standard Time',
572 abbr: 'WCAST',
573 offset: 1,
574 isdst: false,
575 text: '(UTC+01:00) West Central Africa',
576 utc: [
577 'Africa/Algiers',
578 'Africa/Bangui',
579 'Africa/Brazzaville',
580 'Africa/Douala',
581 'Africa/Kinshasa',
582 'Africa/Lagos',
583 'Africa/Libreville',
584 'Africa/Luanda',
585 'Africa/Malabo',
586 'Africa/Ndjamena',
587 'Africa/Niamey',
588 'Africa/Porto-Novo',
589 'Africa/Tunis',
590 'Etc/GMT-1',
591 ],
592 },
593 {
594 value: 'Namibia Standard Time',
595 abbr: 'NST',
596 offset: 1,
597 isdst: false,
598 text: '(UTC+01:00) Windhoek',
599 utc: ['Africa/Windhoek'],
600 },
601 {
602 value: 'GTB Standard Time',
603 abbr: 'GDT',
604 offset: 3,
605 isdst: true,
606 text: '(UTC+02:00) Athens, Bucharest',
607 utc: ['Asia/Nicosia', 'Europe/Athens', 'Europe/Bucharest', 'Europe/Chisinau'],
608 },
609 {
610 value: 'Middle East Standard Time',
611 abbr: 'MEDT',
612 offset: 3,
613 isdst: true,
614 text: '(UTC+02:00) Beirut',
615 utc: ['Asia/Beirut'],
616 },
617 {
618 value: 'Egypt Standard Time',
619 abbr: 'EST',
620 offset: 2,
621 isdst: false,
622 text: '(UTC+02:00) Cairo',
623 utc: ['Africa/Cairo'],
624 },
625 {
626 value: 'Syria Standard Time',
627 abbr: 'SDT',
628 offset: 3,
629 isdst: true,
630 text: '(UTC+02:00) Damascus',
631 utc: ['Asia/Damascus'],
632 },
633 {
634 value: 'E. Europe Standard Time',
635 abbr: 'EEDT',
636 offset: 3,
637 isdst: true,
638 text: '(UTC+02:00) E. Europe',
639 utc: [
640 'Asia/Nicosia',
641 'Europe/Athens',
642 'Europe/Bucharest',
643 'Europe/Chisinau',
644 'Europe/Helsinki',
645 'Europe/Kiev',
646 'Europe/Mariehamn',
647 'Europe/Nicosia',
648 'Europe/Riga',
649 'Europe/Sofia',
650 'Europe/Tallinn',
651 'Europe/Uzhgorod',
652 'Europe/Vilnius',
653 'Europe/Zaporozhye',
654 ],
655 },
656 {
657 value: 'South Africa Standard Time',
658 abbr: 'SAST',
659 offset: 2,
660 isdst: false,
661 text: '(UTC+02:00) Harare, Pretoria',
662 utc: [
663 'Africa/Blantyre',
664 'Africa/Bujumbura',
665 'Africa/Gaborone',
666 'Africa/Harare',
667 'Africa/Johannesburg',
668 'Africa/Kigali',
669 'Africa/Lubumbashi',
670 'Africa/Lusaka',
671 'Africa/Maputo',
672 'Africa/Maseru',
673 'Africa/Mbabane',
674 'Etc/GMT-2',
675 ],
676 },
677 {
678 value: 'FLE Standard Time',
679 abbr: 'FDT',
680 offset: 3,
681 isdst: true,
682 text: '(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius',
683 utc: [
684 'Europe/Helsinki',
685 'Europe/Kiev',
686 'Europe/Mariehamn',
687 'Europe/Riga',
688 'Europe/Sofia',
689 'Europe/Tallinn',
690 'Europe/Uzhgorod',
691 'Europe/Vilnius',
692 'Europe/Zaporozhye',
693 ],
694 },
695 {
696 value: 'Turkey Standard Time',
697 abbr: 'TDT',
698 offset: 3,
699 isdst: false,
700 text: '(UTC+03:00) Istanbul',
701 utc: ['Europe/Istanbul'],
702 },
703 {
704 value: 'Israel Standard Time',
705 abbr: 'JDT',
706 offset: 3,
707 isdst: true,
708 text: '(UTC+02:00) Jerusalem',
709 utc: ['Asia/Jerusalem'],
710 },
711 {
712 value: 'Libya Standard Time',
713 abbr: 'LST',
714 offset: 2,
715 isdst: false,
716 text: '(UTC+02:00) Tripoli',
717 utc: ['Africa/Tripoli'],
718 },
719 {
720 value: 'Jordan Standard Time',
721 abbr: 'JST',
722 offset: 3,
723 isdst: false,
724 text: '(UTC+03:00) Amman',
725 utc: ['Asia/Amman'],
726 },
727 {
728 value: 'Arabic Standard Time',
729 abbr: 'AST',
730 offset: 3,
731 isdst: false,
732 text: '(UTC+03:00) Baghdad',
733 utc: ['Asia/Baghdad'],
734 },
735 {
736 value: 'Kaliningrad Standard Time',
737 abbr: 'KST',
738 offset: 3,
739 isdst: false,
740 text: '(UTC+02:00) Kaliningrad',
741 utc: ['Europe/Kaliningrad'],
742 },
743 {
744 value: 'Arab Standard Time',
745 abbr: 'AST',
746 offset: 3,
747 isdst: false,
748 text: '(UTC+03:00) Kuwait, Riyadh',
749 utc: ['Asia/Aden', 'Asia/Bahrain', 'Asia/Kuwait', 'Asia/Qatar', 'Asia/Riyadh'],
750 },
751 {
752 value: 'E. Africa Standard Time',
753 abbr: 'EAST',
754 offset: 3,
755 isdst: false,
756 text: '(UTC+03:00) Nairobi',
757 utc: [
758 'Africa/Addis_Ababa',
759 'Africa/Asmera',
760 'Africa/Dar_es_Salaam',
761 'Africa/Djibouti',
762 'Africa/Juba',
763 'Africa/Kampala',
764 'Africa/Khartoum',
765 'Africa/Mogadishu',
766 'Africa/Nairobi',
767 'Antarctica/Syowa',
768 'Etc/GMT-3',
769 'Indian/Antananarivo',
770 'Indian/Comoro',
771 'Indian/Mayotte',
772 ],
773 },
774 {
775 value: 'Moscow Standard Time',
776 abbr: 'MSK',
777 offset: 3,
778 isdst: false,
779 text: '(UTC+03:00) Moscow, St. Petersburg, Volgograd, Minsk',
780 utc: ['Europe/Kirov', 'Europe/Moscow', 'Europe/Simferopol', 'Europe/Volgograd', 'Europe/Minsk'],
781 },
782 {
783 value: 'Samara Time',
784 abbr: 'SAMT',
785 offset: 4,
786 isdst: false,
787 text: '(UTC+04:00) Samara, Ulyanovsk, Saratov',
788 utc: ['Europe/Astrakhan', 'Europe/Samara', 'Europe/Ulyanovsk'],
789 },
790 {
791 value: 'Iran Standard Time',
792 abbr: 'IDT',
793 offset: 4.5,
794 isdst: true,
795 text: '(UTC+03:30) Tehran',
796 utc: ['Asia/Tehran'],
797 },
798 {
799 value: 'Arabian Standard Time',
800 abbr: 'AST',
801 offset: 4,
802 isdst: false,
803 text: '(UTC+04:00) Abu Dhabi, Muscat',
804 utc: ['Asia/Dubai', 'Asia/Muscat', 'Etc/GMT-4'],
805 },
806 {
807 value: 'Azerbaijan Standard Time',
808 abbr: 'ADT',
809 offset: 5,
810 isdst: true,
811 text: '(UTC+04:00) Baku',
812 utc: ['Asia/Baku'],
813 },
814 {
815 value: 'Mauritius Standard Time',
816 abbr: 'MST',
817 offset: 4,
818 isdst: false,
819 text: '(UTC+04:00) Port Louis',
820 utc: ['Indian/Mahe', 'Indian/Mauritius', 'Indian/Reunion'],
821 },
822 {
823 value: 'Georgian Standard Time',
824 abbr: 'GET',
825 offset: 4,
826 isdst: false,
827 text: '(UTC+04:00) Tbilisi',
828 utc: ['Asia/Tbilisi'],
829 },
830 {
831 value: 'Caucasus Standard Time',
832 abbr: 'CST',
833 offset: 4,
834 isdst: false,
835 text: '(UTC+04:00) Yerevan',
836 utc: ['Asia/Yerevan'],
837 },
838 {
839 value: 'Afghanistan Standard Time',
840 abbr: 'AST',
841 offset: 4.5,
842 isdst: false,
843 text: '(UTC+04:30) Kabul',
844 utc: ['Asia/Kabul'],
845 },
846 {
847 value: 'West Asia Standard Time',
848 abbr: 'WAST',
849 offset: 5,
850 isdst: false,
851 text: '(UTC+05:00) Ashgabat, Tashkent',
852 utc: [
853 'Antarctica/Mawson',
854 'Asia/Aqtau',
855 'Asia/Aqtobe',
856 'Asia/Ashgabat',
857 'Asia/Dushanbe',
858 'Asia/Oral',
859 'Asia/Samarkand',
860 'Asia/Tashkent',
861 'Etc/GMT-5',
862 'Indian/Kerguelen',
863 'Indian/Maldives',
864 ],
865 },
866 {
867 value: 'Yekaterinburg Time',
868 abbr: 'YEKT',
869 offset: 5,
870 isdst: false,
871 text: '(UTC+05:00) Yekaterinburg',
872 utc: ['Asia/Yekaterinburg'],
873 },
874 {
875 value: 'Pakistan Standard Time',
876 abbr: 'PKT',
877 offset: 5,
878 isdst: false,
879 text: '(UTC+05:00) Islamabad, Karachi',
880 utc: ['Asia/Karachi'],
881 },
882 {
883 value: 'India Standard Time',
884 abbr: 'IST',
885 offset: 5.5,
886 isdst: false,
887 text: '(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi',
888 utc: ['Asia/Kolkata', 'Asia/Calcutta'],
889 },
890 {
891 value: 'Sri Lanka Standard Time',
892 abbr: 'SLST',
893 offset: 5.5,
894 isdst: false,
895 text: '(UTC+05:30) Sri Jayawardenepura',
896 utc: ['Asia/Colombo'],
897 },
898 {
899 value: 'Nepal Standard Time',
900 abbr: 'NST',
901 offset: 5.75,
902 isdst: false,
903 text: '(UTC+05:45) Kathmandu',
904 utc: ['Asia/Kathmandu'],
905 },
906 {
907 value: 'Central Asia Standard Time',
908 abbr: 'CAST',
909 offset: 6,
910 isdst: false,
911 text: '(UTC+06:00) Nur-Sultan (Astana)',
912 utc: [
913 'Antarctica/Vostok',
914 'Asia/Almaty',
915 'Asia/Bishkek',
916 'Asia/Qyzylorda',
917 'Asia/Urumqi',
918 'Etc/GMT-6',
919 'Indian/Chagos',
920 ],
921 },
922 {
923 value: 'Bangladesh Standard Time',
924 abbr: 'BST',
925 offset: 6,
926 isdst: false,
927 text: '(UTC+06:00) Dhaka',
928 utc: ['Asia/Dhaka', 'Asia/Thimphu'],
929 },
930 {
931 value: 'Myanmar Standard Time',
932 abbr: 'MST',
933 offset: 6.5,
934 isdst: false,
935 text: '(UTC+06:30) Yangon (Rangoon)',
936 utc: ['Asia/Rangoon', 'Indian/Cocos'],
937 },
938 {
939 value: 'SE Asia Standard Time',
940 abbr: 'SAST',
941 offset: 7,
942 isdst: false,
943 text: '(UTC+07:00) Bangkok, Hanoi, Jakarta',
944 utc: [
945 'Antarctica/Davis',
946 'Asia/Bangkok',
947 'Asia/Hovd',
948 'Asia/Jakarta',
949 'Asia/Phnom_Penh',
950 'Asia/Pontianak',
951 'Asia/Saigon',
952 'Asia/Vientiane',
953 'Etc/GMT-7',
954 'Indian/Christmas',
955 ],
956 },
957 {
958 value: 'N. Central Asia Standard Time',
959 abbr: 'NCAST',
960 offset: 7,
961 isdst: false,
962 text: '(UTC+07:00) Novosibirsk',
963 utc: ['Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk'],
964 },
965 {
966 value: 'China Standard Time',
967 abbr: 'CST',
968 offset: 8,
969 isdst: false,
970 text: '(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi',
971 utc: ['Asia/Hong_Kong', 'Asia/Macau', 'Asia/Shanghai'],
972 },
973 {
974 value: 'North Asia Standard Time',
975 abbr: 'NAST',
976 offset: 8,
977 isdst: false,
978 text: '(UTC+08:00) Krasnoyarsk',
979 utc: ['Asia/Krasnoyarsk'],
980 },
981 {
982 value: 'Singapore Standard Time',
983 abbr: 'MPST',
984 offset: 8,
985 isdst: false,
986 text: '(UTC+08:00) Kuala Lumpur, Singapore',
987 utc: [
988 'Asia/Brunei',
989 'Asia/Kuala_Lumpur',
990 'Asia/Kuching',
991 'Asia/Makassar',
992 'Asia/Manila',
993 'Asia/Singapore',
994 'Etc/GMT-8',
995 ],
996 },
997 {
998 value: 'W. Australia Standard Time',
999 abbr: 'WAST',
1000 offset: 8,
1001 isdst: false,
1002 text: '(UTC+08:00) Perth',
1003 utc: ['Antarctica/Casey', 'Australia/Perth'],
1004 },
1005 {
1006 value: 'Taipei Standard Time',
1007 abbr: 'TST',
1008 offset: 8,
1009 isdst: false,
1010 text: '(UTC+08:00) Taipei',
1011 utc: ['Asia/Taipei'],
1012 },
1013 {
1014 value: 'Ulaanbaatar Standard Time',
1015 abbr: 'UST',
1016 offset: 8,
1017 isdst: false,
1018 text: '(UTC+08:00) Ulaanbaatar',
1019 utc: ['Asia/Choibalsan', 'Asia/Ulaanbaatar'],
1020 },
1021 {
1022 value: 'North Asia East Standard Time',
1023 abbr: 'NAEST',
1024 offset: 8,
1025 isdst: false,
1026 text: '(UTC+08:00) Irkutsk',
1027 utc: ['Asia/Irkutsk'],
1028 },
1029 {
1030 value: 'Japan Standard Time',
1031 abbr: 'JST',
1032 offset: 9,
1033 isdst: false,
1034 text: '(UTC+09:00) Osaka, Sapporo, Tokyo',
1035 utc: ['Asia/Dili', 'Asia/Jayapura', 'Asia/Tokyo', 'Etc/GMT-9', 'Pacific/Palau'],
1036 },
1037 {
1038 value: 'Korea Standard Time',
1039 abbr: 'KST',
1040 offset: 9,
1041 isdst: false,
1042 text: '(UTC+09:00) Seoul',
1043 utc: ['Asia/Pyongyang', 'Asia/Seoul'],
1044 },
1045 {
1046 value: 'Cen. Australia Standard Time',
1047 abbr: 'CAST',
1048 offset: 9.5,
1049 isdst: false,
1050 text: '(UTC+09:30) Adelaide',
1051 utc: ['Australia/Adelaide', 'Australia/Broken_Hill'],
1052 },
1053 {
1054 value: 'AUS Central Standard Time',
1055 abbr: 'ACST',
1056 offset: 9.5,
1057 isdst: false,
1058 text: '(UTC+09:30) Darwin',
1059 utc: ['Australia/Darwin'],
1060 },
1061 {
1062 value: 'E. Australia Standard Time',
1063 abbr: 'EAST',
1064 offset: 10,
1065 isdst: false,
1066 text: '(UTC+10:00) Brisbane',
1067 utc: ['Australia/Brisbane', 'Australia/Lindeman'],
1068 },
1069 {
1070 value: 'AUS Eastern Standard Time',
1071 abbr: 'AEST',
1072 offset: 10,
1073 isdst: false,
1074 text: '(UTC+10:00) Canberra, Melbourne, Sydney',
1075 utc: ['Australia/Melbourne', 'Australia/Sydney'],
1076 },
1077 {
1078 value: 'West Pacific Standard Time',
1079 abbr: 'WPST',
1080 offset: 10,
1081 isdst: false,
1082 text: '(UTC+10:00) Guam, Port Moresby',
1083 utc: [
1084 'Antarctica/DumontDUrville',
1085 'Etc/GMT-10',
1086 'Pacific/Guam',
1087 'Pacific/Port_Moresby',
1088 'Pacific/Saipan',
1089 'Pacific/Truk',
1090 ],
1091 },
1092 {
1093 value: 'Tasmania Standard Time',
1094 abbr: 'TST',
1095 offset: 10,
1096 isdst: false,
1097 text: '(UTC+10:00) Hobart',
1098 utc: ['Australia/Currie', 'Australia/Hobart'],
1099 },
1100 {
1101 value: 'Yakutsk Standard Time',
1102 abbr: 'YST',
1103 offset: 9,
1104 isdst: false,
1105 text: '(UTC+09:00) Yakutsk',
1106 utc: ['Asia/Chita', 'Asia/Khandyga', 'Asia/Yakutsk'],
1107 },
1108 {
1109 value: 'Central Pacific Standard Time',
1110 abbr: 'CPST',
1111 offset: 11,
1112 isdst: false,
1113 text: '(UTC+11:00) Solomon Is., New Caledonia',
1114 utc: [
1115 'Antarctica/Macquarie',
1116 'Etc/GMT-11',
1117 'Pacific/Efate',
1118 'Pacific/Guadalcanal',
1119 'Pacific/Kosrae',
1120 'Pacific/Noumea',
1121 'Pacific/Ponape',
1122 ],
1123 },
1124 {
1125 value: 'Vladivostok Standard Time',
1126 abbr: 'VST',
1127 offset: 11,
1128 isdst: false,
1129 text: '(UTC+11:00) Vladivostok',
1130 utc: ['Asia/Sakhalin', 'Asia/Ust-Nera', 'Asia/Vladivostok'],
1131 },
1132 {
1133 value: 'New Zealand Standard Time',
1134 abbr: 'NZST',
1135 offset: 12,
1136 isdst: false,
1137 text: '(UTC+12:00) Auckland, Wellington',
1138 utc: ['Antarctica/McMurdo', 'Pacific/Auckland'],
1139 },
1140 {
1141 value: 'UTC+12',
1142 abbr: 'U',
1143 offset: 12,
1144 isdst: false,
1145 text: '(UTC+12:00) Coordinated Universal Time+12',
1146 utc: [
1147 'Etc/GMT-12',
1148 'Pacific/Funafuti',
1149 'Pacific/Kwajalein',
1150 'Pacific/Majuro',
1151 'Pacific/Nauru',
1152 'Pacific/Tarawa',
1153 'Pacific/Wake',
1154 'Pacific/Wallis',
1155 ],
1156 },
1157 {
1158 value: 'Fiji Standard Time',
1159 abbr: 'FST',
1160 offset: 12,
1161 isdst: false,
1162 text: '(UTC+12:00) Fiji',
1163 utc: ['Pacific/Fiji'],
1164 },
1165 {
1166 value: 'Magadan Standard Time',
1167 abbr: 'MST',
1168 offset: 12,
1169 isdst: false,
1170 text: '(UTC+12:00) Magadan',
1171 utc: ['Asia/Anadyr', 'Asia/Kamchatka', 'Asia/Magadan', 'Asia/Srednekolymsk'],
1172 },
1173 {
1174 value: 'Kamchatka Standard Time',
1175 abbr: 'KDT',
1176 offset: 13,
1177 isdst: true,
1178 text: '(UTC+12:00) Petropavlovsk-Kamchatsky - Old',
1179 utc: ['Asia/Kamchatka'],
1180 },
1181 {
1182 value: 'Tonga Standard Time',
1183 abbr: 'TST',
1184 offset: 13,
1185 isdst: false,
1186 text: "(UTC+13:00) Nuku'alofa",
1187 utc: ['Etc/GMT-13', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Tongatapu'],
1188 },
1189 {
1190 value: 'Samoa Standard Time',
1191 abbr: 'SST',
1192 offset: 13,
1193 isdst: false,
1194 text: '(UTC+13:00) Samoa',
1195 utc: ['Pacific/Apia'],
1196 },
1197]
1198
1199/**
1200 * Deduplicated view of `ALL_TIMEZONES`, keyed by the entry's primary IANA
1201 * name (`utc[0]`). Several catalog rows share an IANA target — e.g. PDT and
1202 * PST both point to `America/Los_Angeles` — which would render duplicate UI
1203 * rows that all store the same value when picked. We prefer the standard-time
1204 * (`isdst: false`) row when both are present.
1205 */
1206export const TIMEZONES_BY_IANA: Timezone[] = (() => {
1207 const seen = new Map<string, Timezone>()
1208 for (const entry of ALL_TIMEZONES) {
1209 const key = entry.utc[0]
1210 if (!key) continue
1211 const existing = seen.get(key)
1212 if (!existing || (existing.isdst && !entry.isdst)) {
1213 seen.set(key, entry)
1214 }
1215 }
1216 return Array.from(seen.values())
1217})()
1218
1219/** Look up the catalog entry that owns the given IANA name (any of `utc[]`). */
1220export const findTimezoneByIana = (iana: string): Timezone | undefined =>
1221 ALL_TIMEZONES.find((entry) => entry.utc.includes(iana))