diff --git a/icu4c/data/timezone.txt b/icu4c/data/timezone.txt index faf7e91aee5..bc71106efda 100644 --- a/icu4c/data/timezone.txt +++ b/icu4c/data/timezone.txt @@ -1,600 +1,856 @@ -#--- Header --- Generated file, DO NOT EDIT -3 # format version number of this file -2000 # (tzdata2000f) version of Olson zone -6 # data from ftp://elsie.nci.nih.gov/pub -421 # total zone count -115 # equivalency groups count -41 # max zones with same gmtOffset -24 # max zones in an equivalency group -6089 # length of name table in bytes +#--- Header --- Generated by tz.pl +4 # format version number of this file +2000 # (tzdata2000h) version of Olson zone +8 # data from ftp://elsie.nci.nih.gov/pub +432 # total zone count +117 # equivalency groups count +49 # max zones with same gmtOffset +32 # max zones in an equivalency group +6281 # length of name table in bytes end #--- Zone table --- #| equiv_index,name -421 # count of zones to follow -94,ACT -98,AET -34,AGT -55,ART +432 # count of zones to follow +96,ACT +100,AET +36,AGT +57,ART 7,AST -42,Africa/Abidjan -45,Africa/Accra -61,Africa/Addis_Ababa -46,Africa/Algiers -61,Africa/Asmera -42,Africa/Bamako -46,Africa/Bangui -42,Africa/Banjul -42,Africa/Bissau -51,Africa/Blantyre -46,Africa/Brazzaville -51,Africa/Bujumbura -55,Africa/Cairo -42,Africa/Casablanca -47,Africa/Ceuta -42,Africa/Conakry -42,Africa/Dakar -61,Africa/Dar_es_Salaam -61,Africa/Djibouti -46,Africa/Douala -42,Africa/El_Aaiun -43,Africa/Freetown -51,Africa/Gaborone -51,Africa/Harare -60,Africa/Johannesburg -61,Africa/Kampala -61,Africa/Khartoum -51,Africa/Kigali -46,Africa/Kinshasa -46,Africa/Lagos -46,Africa/Libreville -42,Africa/Lome -46,Africa/Luanda -51,Africa/Lubumbashi -51,Africa/Lusaka -46,Africa/Malabo -51,Africa/Maputo -51,Africa/Maseru -51,Africa/Mbabane -61,Africa/Mogadishu -42,Africa/Monrovia -61,Africa/Nairobi -46,Africa/Ndjamena -46,Africa/Niamey -42,Africa/Nouakchott -42,Africa/Ouagadougou -46,Africa/Porto-Novo -42,Africa/Sao_Tome -42,Africa/Timbuktu -51,Africa/Tripoli -49,Africa/Tunis -50,Africa/Windhoek +44,Africa/Abidjan +47,Africa/Accra +63,Africa/Addis_Ababa +48,Africa/Algiers +63,Africa/Asmera +44,Africa/Bamako +48,Africa/Bangui +44,Africa/Banjul +44,Africa/Bissau +53,Africa/Blantyre +48,Africa/Brazzaville +53,Africa/Bujumbura +57,Africa/Cairo +44,Africa/Casablanca +49,Africa/Ceuta +44,Africa/Conakry +44,Africa/Dakar +63,Africa/Dar_es_Salaam +63,Africa/Djibouti +48,Africa/Douala +44,Africa/El_Aaiun +45,Africa/Freetown +53,Africa/Gaborone +53,Africa/Harare +62,Africa/Johannesburg +63,Africa/Kampala +63,Africa/Khartoum +53,Africa/Kigali +48,Africa/Kinshasa +48,Africa/Lagos +48,Africa/Libreville +44,Africa/Lome +48,Africa/Luanda +53,Africa/Lubumbashi +53,Africa/Lusaka +48,Africa/Malabo +53,Africa/Maputo +53,Africa/Maseru +53,Africa/Mbabane +63,Africa/Mogadishu +44,Africa/Monrovia +63,Africa/Nairobi +48,Africa/Ndjamena +48,Africa/Niamey +44,Africa/Nouakchott +44,Africa/Ouagadougou +48,Africa/Porto-Novo +44,Africa/Sao_Tome +44,Africa/Timbuktu +53,Africa/Tripoli +51,Africa/Tunis +52,Africa/Windhoek 3,America/Adak 7,America/Anchorage -26,America/Anguilla -26,America/Antigua -38,America/Araguaina -26,America/Aruba -30,America/Asuncion -28,America/Barbados -34,America/Belem -14,America/Belize -29,America/Boa_Vista -25,America/Bogota +27,America/Anguilla +27,America/Antigua +40,America/Araguaina +27,America/Aruba +31,America/Asuncion +30,America/Barbados +36,America/Belem +15,America/Belize +27,America/Boa_Vista +26,America/Bogota 11,America/Boise -34,America/Buenos_Aires +36,America/Buenos_Aires 13,America/Cambridge_Bay 13,America/Cancun -26,America/Caracas -34,America/Catamarca -34,America/Cayenne -19,America/Cayman +27,America/Caracas +36,America/Catamarca +36,America/Cayenne +20,America/Cayman 13,America/Chicago 11,America/Chihuahua -34,America/Cordoba -15,America/Costa_Rica -29,America/Cuiaba -26,America/Curacao +36,America/Cordoba +16,America/Costa_Rica +32,America/Cuiaba +27,America/Curacao 9,America/Dawson 10,America/Dawson_Creek 11,America/Denver -23,America/Detroit -26,America/Dominica +24,America/Detroit +27,America/Dominica 11,America/Edmonton -17,America/El_Salvador -38,America/Fortaleza -27,America/Glace_Bay -36,America/Godthab -27,America/Goose_Bay -20,America/Grand_Turk -26,America/Grenada -26,America/Guadeloupe -16,America/Guatemala -19,America/Guayaquil -26,America/Guyana -27,America/Halifax -21,America/Havana +20,America/Eirunepe +18,America/El_Salvador +36,America/Fortaleza +29,America/Glace_Bay +38,America/Godthab +28,America/Goose_Bay +21,America/Grand_Turk +27,America/Grenada +27,America/Guadeloupe +17,America/Guatemala +20,America/Guayaquil +27,America/Guyana +29,America/Halifax +22,America/Havana 10,America/Hermosillo -19,America/Indiana/Knox -19,America/Indiana/Marengo -19,America/Indiana/Vevay -19,America/Indianapolis +20,America/Indiana/Knox +20,America/Indiana/Marengo +20,America/Indiana/Vevay +20,America/Indianapolis 11,America/Inuvik -13,America/Iqaluit -19,America/Jamaica -34,America/Jujuy +20,America/Iqaluit +20,America/Jamaica +36,America/Jujuy 7,America/Juneau -26,America/La_Paz -24,America/Lima +24,America/Kentucky/Monticello +27,America/La_Paz +25,America/Lima 9,America/Los_Angeles -23,America/Louisville -38,America/Maceio +24,America/Louisville +36,America/Maceio 12,America/Managua -26,America/Manaus -26,America/Martinique +27,America/Manaus +27,America/Martinique 11,America/Mazatlan -34,America/Mendoza +36,America/Mendoza 13,America/Menominee 13,America/Merida 13,America/Mexico_City -35,America/Miquelon +37,America/Miquelon 13,America/Monterrey -37,America/Montevideo -23,America/Montreal -26,America/Montserrat -23,America/Nassau -23,America/New_York -23,America/Nipigon +39,America/Montevideo +24,America/Montreal +27,America/Montserrat +24,America/Nassau +24,America/New_York +24,America/Nipigon 7,America/Nome -39,America/Noronha -19,America/Panama -13,America/Pangnirtung -34,America/Paramaribo +41,America/Noronha +20,America/Panama +20,America/Pangnirtung +36,America/Paramaribo 10,America/Phoenix -22,America/Port-au-Prince -26,America/Port_of_Spain -19,America/Porto_Acre -26,America/Porto_Velho -26,America/Puerto_Rico +23,America/Port-au-Prince +27,America/Port_of_Spain +20,America/Porto_Acre +27,America/Porto_Velho +27,America/Puerto_Rico 13,America/Rainy_River -13,America/Rankin_Inlet +20,America/Rankin_Inlet +36,America/Recife 12,America/Regina -34,America/Rosario -31,America/Santiago -26,America/Santo_Domingo -38,America/Sao_Paulo -41,America/Scoresbysund -33,America/St_Johns -26,America/St_Kitts -26,America/St_Lucia -26,America/St_Thomas -26,America/St_Vincent +36,America/Rosario +33,America/Santiago +27,America/Santo_Domingo +40,America/Sao_Paulo +43,America/Scoresbysund +35,America/St_Johns +27,America/St_Kitts +27,America/St_Lucia +27,America/St_Thomas +27,America/St_Vincent 12,America/Swift_Current -17,America/Tegucigalpa -27,America/Thule -23,America/Thunder_Bay +18,America/Tegucigalpa +29,America/Thule +24,America/Thunder_Bay 9,America/Tijuana -26,America/Tortola +27,America/Tortola 9,America/Vancouver 9,America/Whitehorse -13,America/Winnipeg +14,America/Winnipeg 7,America/Yakutat 11,America/Yellowknife -84,Antarctica/Casey -81,Antarctica/Davis -96,Antarctica/DumontDUrville -77,Antarctica/Mawson -110,Antarctica/McMurdo -31,Antarctica/Palmer -61,Antarctica/Syowa -61,Asia/Aden -78,Asia/Almaty -59,Asia/Amman -108,Asia/Anadyr -67,Asia/Aqtau -72,Asia/Aqtobe -71,Asia/Ashkhabad -62,Asia/Baghdad -61,Asia/Bahrain -68,Asia/Baku -81,Asia/Bangkok -56,Asia/Beirut -74,Asia/Bishkek -84,Asia/Brunei -75,Asia/Calcutta -85,Asia/Chungking -77,Asia/Colombo -77,Asia/Dacca -52,Asia/Damascus -84,Asia/Dili -66,Asia/Dubai -71,Asia/Dushanbe -54,Asia/Gaza -85,Asia/Harbin -90,Asia/Hong_Kong -82,Asia/Hovd -89,Asia/Irkutsk -81,Asia/Jakarta -91,Asia/Jayapura -53,Asia/Jerusalem -70,Asia/Kabul -108,Asia/Kamchatka -71,Asia/Karachi -85,Asia/Kashgar -76,Asia/Katmandu -83,Asia/Krasnoyarsk -84,Asia/Kuala_Lumpur -84,Asia/Kuching -61,Asia/Kuwait -85,Asia/Macao -104,Asia/Magadan -87,Asia/Manila -66,Asia/Muscat -57,Asia/Nicosia -79,Asia/Novosibirsk -79,Asia/Omsk -81,Asia/Phnom_Penh -91,Asia/Pyongyang -61,Asia/Qatar -80,Asia/Rangoon -61,Asia/Riyadh -64,Asia/Riyadh87 -64,Asia/Riyadh88 -64,Asia/Riyadh89 -81,Asia/Saigon -71,Asia/Samarkand -93,Asia/Seoul -85,Asia/Shanghai -84,Asia/Singapore -86,Asia/Taipei -71,Asia/Tashkent -67,Asia/Tbilisi -65,Asia/Tehran -77,Asia/Thimbu -91,Asia/Tokyo -84,Asia/Ujung_Pandang -88,Asia/Ulaanbaatar -85,Asia/Urumqi -81,Asia/Vientiane -97,Asia/Vladivostok -92,Asia/Yakutsk -73,Asia/Yekaterinburg -69,Asia/Yerevan -41,Atlantic/Azores -27,Atlantic/Bermuda -44,Atlantic/Canary -40,Atlantic/Cape_Verde -44,Atlantic/Faeroe -40,Atlantic/Jan_Mayen -44,Atlantic/Madeira -42,Atlantic/Reykjavik -39,Atlantic/South_Georgia -42,Atlantic/St_Helena -32,Atlantic/Stanley -95,Australia/Adelaide -99,Australia/Brisbane -95,Australia/Broken_Hill -94,Australia/Darwin -100,Australia/Hobart -99,Australia/Lindeman -101,Australia/Lord_Howe -98,Australia/Melbourne -84,Australia/Perth -98,Australia/Sydney -38,BET -77,BST -51,CAT -48,CET -33,CNT +86,Antarctica/Casey +83,Antarctica/Davis +98,Antarctica/DumontDUrville +79,Antarctica/Mawson +112,Antarctica/McMurdo +33,Antarctica/Palmer +63,Antarctica/Syowa +49,Arctic/Longyearbyen +63,Asia/Aden +80,Asia/Almaty +61,Asia/Amman +110,Asia/Anadyr +69,Asia/Aqtau +74,Asia/Aqtobe +73,Asia/Ashgabat +64,Asia/Baghdad +63,Asia/Bahrain +70,Asia/Baku +83,Asia/Bangkok +58,Asia/Beirut +76,Asia/Bishkek +86,Asia/Brunei +77,Asia/Calcutta +87,Asia/Chungking +79,Asia/Colombo +54,Asia/Damascus +79,Asia/Dhaka +93,Asia/Dili +68,Asia/Dubai +73,Asia/Dushanbe +56,Asia/Gaza +87,Asia/Harbin +92,Asia/Hong_Kong +84,Asia/Hovd +91,Asia/Irkutsk +83,Asia/Jakarta +93,Asia/Jayapura +55,Asia/Jerusalem +72,Asia/Kabul +110,Asia/Kamchatka +73,Asia/Karachi +87,Asia/Kashgar +78,Asia/Katmandu +85,Asia/Krasnoyarsk +86,Asia/Kuala_Lumpur +86,Asia/Kuching +63,Asia/Kuwait +87,Asia/Macao +106,Asia/Magadan +89,Asia/Manila +68,Asia/Muscat +59,Asia/Nicosia +81,Asia/Novosibirsk +81,Asia/Omsk +83,Asia/Phnom_Penh +93,Asia/Pyongyang +63,Asia/Qatar +82,Asia/Rangoon +63,Asia/Riyadh +66,Asia/Riyadh87 +66,Asia/Riyadh88 +66,Asia/Riyadh89 +83,Asia/Saigon +73,Asia/Samarkand +95,Asia/Seoul +87,Asia/Shanghai +86,Asia/Singapore +88,Asia/Taipei +73,Asia/Tashkent +69,Asia/Tbilisi +67,Asia/Tehran +79,Asia/Thimphu +93,Asia/Tokyo +86,Asia/Ujung_Pandang +90,Asia/Ulaanbaatar +87,Asia/Urumqi +83,Asia/Vientiane +99,Asia/Vladivostok +94,Asia/Yakutsk +75,Asia/Yekaterinburg +71,Asia/Yerevan +43,Atlantic/Azores +29,Atlantic/Bermuda +46,Atlantic/Canary +42,Atlantic/Cape_Verde +46,Atlantic/Faeroe +42,Atlantic/Jan_Mayen +46,Atlantic/Madeira +44,Atlantic/Reykjavik +41,Atlantic/South_Georgia +44,Atlantic/St_Helena +34,Atlantic/Stanley +97,Australia/Adelaide +101,Australia/Brisbane +97,Australia/Broken_Hill +96,Australia/Darwin +102,Australia/Hobart +101,Australia/Lindeman +103,Australia/Lord_Howe +100,Australia/Melbourne +86,Australia/Perth +100,Australia/Sydney +40,BET +79,BST +53,CAT +50,CET +35,CNT 13,CST -85,CTT -61,EAT -47,ECT -57,EET -23,EST -42,Etc/GMT -40,Etc/GMT+1 +87,CTT +63,EAT +49,ECT +59,EET +24,EST +44,Etc/GMT +42,Etc/GMT+1 2,Etc/GMT+10 1,Etc/GMT+11 0,Etc/GMT+12 -39,Etc/GMT+2 -34,Etc/GMT+3 -26,Etc/GMT+4 -19,Etc/GMT+5 +41,Etc/GMT+2 +36,Etc/GMT+3 +27,Etc/GMT+4 +20,Etc/GMT+5 12,Etc/GMT+6 10,Etc/GMT+7 8,Etc/GMT+8 6,Etc/GMT+9 -46,Etc/GMT-1 -96,Etc/GMT-10 -102,Etc/GMT-11 -107,Etc/GMT-12 -112,Etc/GMT-13 -114,Etc/GMT-14 -51,Etc/GMT-2 -61,Etc/GMT-3 -66,Etc/GMT-4 -71,Etc/GMT-5 -77,Etc/GMT-6 -81,Etc/GMT-7 -84,Etc/GMT-8 -91,Etc/GMT-9 -42,Etc/UCT -42,Etc/UTC -47,Europe/Amsterdam -47,Europe/Andorra -57,Europe/Athens -44,Europe/Belfast -47,Europe/Belgrade -47,Europe/Berlin -47,Europe/Brussels -57,Europe/Bucharest -47,Europe/Budapest -57,Europe/Chisinau -47,Europe/Copenhagen -44,Europe/Dublin -47,Europe/Gibraltar -57,Europe/Helsinki -57,Europe/Istanbul -58,Europe/Kaliningrad -57,Europe/Kiev -44,Europe/Lisbon -44,Europe/London -47,Europe/Luxembourg -47,Europe/Madrid -47,Europe/Malta -58,Europe/Minsk -47,Europe/Monaco -63,Europe/Moscow -47,Europe/Oslo -47,Europe/Paris -47,Europe/Prague -51,Europe/Riga -47,Europe/Rome -69,Europe/Samara -57,Europe/Simferopol -57,Europe/Sofia -47,Europe/Stockholm -51,Europe/Tallinn -47,Europe/Tirane -63,Europe/Tiraspol -57,Europe/Uzhgorod -47,Europe/Vaduz -47,Europe/Vienna -51,Europe/Vilnius -47,Europe/Warsaw -57,Europe/Zaporozhye -47,Europe/Zurich -42,GMT +48,Etc/GMT-1 +98,Etc/GMT-10 +104,Etc/GMT-11 +109,Etc/GMT-12 +114,Etc/GMT-13 +116,Etc/GMT-14 +53,Etc/GMT-2 +63,Etc/GMT-3 +68,Etc/GMT-4 +73,Etc/GMT-5 +79,Etc/GMT-6 +83,Etc/GMT-7 +86,Etc/GMT-8 +93,Etc/GMT-9 +44,Etc/UCT +44,Etc/UTC +49,Europe/Amsterdam +49,Europe/Andorra +59,Europe/Athens +46,Europe/Belfast +49,Europe/Belgrade +49,Europe/Berlin +49,Europe/Bratislava +49,Europe/Brussels +59,Europe/Bucharest +49,Europe/Budapest +59,Europe/Chisinau +49,Europe/Copenhagen +46,Europe/Dublin +49,Europe/Gibraltar +59,Europe/Helsinki +59,Europe/Istanbul +60,Europe/Kaliningrad +59,Europe/Kiev +46,Europe/Lisbon +49,Europe/Ljubljana +46,Europe/London +49,Europe/Luxembourg +49,Europe/Madrid +49,Europe/Malta +60,Europe/Minsk +49,Europe/Monaco +65,Europe/Moscow +49,Europe/Oslo +49,Europe/Paris +49,Europe/Prague +53,Europe/Riga +49,Europe/Rome +71,Europe/Samara +49,Europe/San_Marino +49,Europe/Sarajevo +59,Europe/Simferopol +49,Europe/Skopje +59,Europe/Sofia +49,Europe/Stockholm +53,Europe/Tallinn +49,Europe/Tirane +65,Europe/Tiraspol +59,Europe/Uzhgorod +49,Europe/Vaduz +49,Europe/Vatican +49,Europe/Vienna +53,Europe/Vilnius +49,Europe/Warsaw +49,Europe/Zagreb +59,Europe/Zaporozhye +49,Europe/Zurich +44,GMT 2,HST -19,IET -75,IST -61,Indian/Antananarivo -71,Indian/Chagos -81,Indian/Christmas -80,Indian/Cocos -61,Indian/Comoro -71,Indian/Kerguelen -66,Indian/Mahe -71,Indian/Maldives -66,Indian/Mauritius -61,Indian/Mayotte -66,Indian/Reunion -91,JST -48,MET +20,IET +77,IST +63,Indian/Antananarivo +73,Indian/Chagos +83,Indian/Christmas +82,Indian/Cocos +63,Indian/Comoro +73,Indian/Kerguelen +68,Indian/Mahe +73,Indian/Maldives +68,Indian/Mauritius +63,Indian/Mayotte +68,Indian/Reunion +93,JST +50,MET 1,MIT 11,MST -69,NET -110,NST -71,PLT +71,NET +112,NST +73,PLT 10,PNT -26,PRT +27,PRT 9,PST 1,Pacific/Apia -110,Pacific/Auckland -111,Pacific/Chatham -18,Pacific/Easter -105,Pacific/Efate -112,Pacific/Enderbury +112,Pacific/Auckland +113,Pacific/Chatham +19,Pacific/Easter +107,Pacific/Efate +114,Pacific/Enderbury 2,Pacific/Fakaofo -109,Pacific/Fiji -107,Pacific/Funafuti +111,Pacific/Fiji +109,Pacific/Funafuti 12,Pacific/Galapagos 6,Pacific/Gambier -102,Pacific/Guadalcanal -96,Pacific/Guam +104,Pacific/Guadalcanal +98,Pacific/Guam 2,Pacific/Honolulu 2,Pacific/Johnston -114,Pacific/Kiritimati -102,Pacific/Kosrae -107,Pacific/Kwajalein -107,Pacific/Majuro +116,Pacific/Kiritimati +104,Pacific/Kosrae +109,Pacific/Kwajalein +109,Pacific/Majuro 5,Pacific/Marquesas 1,Pacific/Midway -107,Pacific/Nauru +109,Pacific/Nauru 1,Pacific/Niue -106,Pacific/Norfolk -103,Pacific/Noumea +108,Pacific/Norfolk +105,Pacific/Noumea 1,Pacific/Pago_Pago -91,Pacific/Palau +93,Pacific/Palau 8,Pacific/Pitcairn -102,Pacific/Ponape -96,Pacific/Port_Moresby +104,Pacific/Ponape +98,Pacific/Port_Moresby 4,Pacific/Rarotonga -96,Pacific/Saipan +98,Pacific/Saipan 2,Pacific/Tahiti -107,Pacific/Tarawa -113,Pacific/Tongatapu -96,Pacific/Truk -107,Pacific/Wake -107,Pacific/Wallis -96,Pacific/Yap -102,SST -42,UTC -81,VST -44,WET +109,Pacific/Tarawa +115,Pacific/Tongatapu +98,Pacific/Truk +109,Pacific/Wake +109,Pacific/Wallis +98,Pacific/Yap +104,SST +44,UTC +83,VST +46,WET end #--- Equivalency table --- #| ('s'|'d'),zone_spec,id_count,id_list -115 # count of equivalency groups to follow -s,-43200,1,284 # 0 GMT-12 [ Etc/GMT+12 ] -s,-39600,6,283,370,378,398,400,403 # 1 GMT-11 [ Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago ] -s,-36000,6,282,354,384,391,392,410 # 2 GMT-10 [ Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Tahiti ] +117 # count of equivalency groups to follow +s,-43200,1,288 # 0 GMT-12 [ Etc/GMT+12 ] +s,-39600,6,287,381,389,409,411,414 # 1 GMT-11 [ Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago ] +s,-36000,6,286,365,395,402,403,421 # 2 GMT-10 [ Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Tahiti ] d,-36000,3,1,-1,120,w,9,-1,1,120,w,60,1,57 # 3 GMT-10:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Adak ] -d,-36000,9,-1,1,0,w,2,1,-1,0,w,30,1,408 # 4 GMT-10:00 Oct lastSun 0:00 Mar Sun>=1 0:00 0:30 [ Pacific/Rarotonga ] -s,-34200,1,397 # 5 GMT-9:30 [ Pacific/Marquesas ] -s,-32400,2,292,388 # 6 GMT-9 [ Etc/GMT+9 Pacific/Gambier ] -d,-32400,3,1,-1,120,w,9,-1,1,120,w,60,5,4,58,111,133,166 # 7 GMT-9:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ AST America/Anchorage America/Juneau America/Nome America/Yakutat ] -s,-28800,2,291,405 # 8 GMT-8 [ Etc/GMT+8 Pacific/Pitcairn ] -d,-28800,3,1,-1,120,w,9,-1,1,120,w,60,6,83,114,161,163,164,377 # 9 GMT-8:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Dawson America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse PST ] -s,-25200,5,84,102,138,290,375 # 10 GMT-7:00 [ America/Dawson_Creek America/Hermosillo America/Phoenix Etc/GMT+7 PNT ] -d,-25200,3,1,-1,120,w,9,-1,1,120,w,60,8,69,78,85,88,107,120,167,371 # 11 GMT-7:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Boise America/Chihuahua America/Denver America/Edmonton America/Inuvik America/Mazatlan America/Yellowknife MST ] -s,-21600,5,117,146,157,289,387 # 12 GMT-6:00 [ America/Managua America/Regina America/Swift_Current Etc/GMT+6 Pacific/Galapagos ] -d,-21600,3,1,-1,120,w,9,-1,1,120,w,60,13,71,72,77,108,122,123,124,126,136,144,145,165,274 # 13 GMT-6:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Cambridge_Bay America/Cancun America/Chicago America/Iqaluit America/Menominee America/Merida America/Mexico_City America/Monterrey America/Pangnirtung America/Rainy_River America/Rankin_Inlet America/Winnipeg CST ] -d,-21600,11,18,0,0,w,1,12,0,0,w,60,1,66 # 14 GMT-6:00 Dec 18 0:00 Feb 12 0:00 1:00 [ America/Belize ] -d,-21600,0,15,-7,0,w,2,15,0,0,w,60,1,80 # 15 GMT-6:00 Jan Sat>=15 0:00 Mar 15 0:00 1:00 [ America/Costa_Rica ] -d,-21600,2,23,0,0,w,8,7,0,0,w,60,1,97 # 16 GMT-6:00 Mar 23 0:00 Sep 7 0:00 1:00 [ America/Guatemala ] -d,-21600,4,1,-1,0,w,8,-1,1,0,w,60,2,89,158 # 17 GMT-6:00 May Sun>=1 0:00 Sep lastSun 0:00 1:00 [ America/El_Salvador America/Tegucigalpa ] -d,-21600,9,9,-1,0,w,2,9,-1,0,w,60,1,381 # 18 GMT-6:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ Pacific/Easter ] -s,-18000,11,76,98,103,104,105,106,109,135,141,288,355 # 19 GMT-5:00 [ America/Cayman America/Guayaquil America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Jamaica America/Panama America/Porto_Acre Etc/GMT+5 IET ] -d,-18000,3,1,-1,0,w,9,-1,1,0,w,60,1,94 # 20 GMT-5:00 Apr Sun>=1 0:00 Oct lastSun 0:00 1:00 [ America/Grand_Turk ] -d,-18000,3,1,-1,0,s,9,-1,1,0,s,60,1,101 # 21 GMT-5:00 Apr Sun>=1 0:00s Oct lastSun 0:00s 1:00 [ America/Havana ] -d,-18000,3,1,-1,60,s,9,-1,1,60,s,60,1,139 # 22 GMT-5:00 Apr Sun>=1 1:00s Oct lastSun 1:00s 1:00 [ America/Port-au-Prince ] -d,-18000,3,1,-1,120,w,9,-1,1,120,w,60,8,86,115,128,130,131,132,160,279 # 23 GMT-5:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Detroit America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Thunder_Bay EST ] -d,-18000,0,1,0,0,w,3,1,0,0,w,60,1,113 # 24 GMT-5:00 Jan 1 0:00 Apr 1 0:00 1:00 [ America/Lima ] -d,-18000,4,2,0,0,w,11,31,0,0,w,60,1,68 # 25 GMT-5:00 May 2 0:00 Dec 31 0:00 1:00 [ America/Bogota ] -s,-14400,24,59,60,62,73,82,87,95,96,99,112,118,119,129,140,142,143,149,153,154,155,156,162,287,376 # 26 GMT-4:00 [ America/Anguilla America/Antigua America/Aruba America/Caracas America/Curacao America/Dominica America/Grenada America/Guadeloupe America/Guyana America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Tortola Etc/GMT+4 PRT ] -d,-14400,3,1,-1,120,w,9,-1,1,120,w,60,5,91,93,100,159,249 # 27 GMT-4:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Glace_Bay America/Goose_Bay America/Halifax America/Thule Atlantic/Bermuda ] -d,-14400,3,15,-1,120,w,8,25,0,120,w,60,1,64 # 28 GMT-4:00 Apr Sun>=15 2:00 Sep 25 2:00 1:00 [ America/Barbados ] -d,-14400,9,1,-1,0,w,1,-1,1,0,w,60,2,67,81 # 29 GMT-4:00 Oct Sun>=1 0:00 Feb lastSun 0:00 1:00 [ America/Boa_Vista America/Cuiaba ] -d,-14400,9,8,-1,0,w,1,-1,1,0,w,60,1,63 # 30 GMT-4:00 Oct Sun>=8 0:00 Feb lastSun 0:00 1:00 [ America/Asuncion ] -d,-14400,9,9,-1,0,w,2,9,-1,0,w,60,2,148,173 # 31 GMT-4:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ America/Santiago Antarctica/Palmer ] -d,-14400,8,8,-1,0,w,3,16,-1,0,w,60,1,258 # 32 GMT-4:00 Sep Sun>=8 0:00 Apr Sun>=16 0:00 1:00 [ Atlantic/Stanley ] -d,-12600,3,1,-1,120,w,9,-1,1,120,w,60,2,152,273 # 33 GMT-3:30 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/St_Johns CNT ] -s,-10800,11,2,65,70,74,75,79,110,121,137,147,286 # 34 GMT-3:00 [ AGT America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Jujuy America/Mendoza America/Paramaribo America/Rosario Etc/GMT+3 ] -d,-10800,3,1,-1,120,w,9,-1,1,120,w,60,1,125 # 35 GMT-3:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Miquelon ] -d,-10800,2,-1,1,60,u,9,-1,1,60,u,60,1,92 # 36 GMT-3:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Godthab ] -d,-10800,9,18,0,0,w,1,28,0,0,w,60,1,127 # 37 GMT-3:00 Oct 18 0:00 Feb 28 0:00 1:00 [ America/Montevideo ] -d,-10800,9,1,-1,0,w,1,-1,1,0,w,60,5,61,90,116,150,269 # 38 GMT-3:00 Oct Sun>=1 0:00 Feb lastSun 0:00 1:00 [ America/Araguaina America/Fortaleza America/Maceio America/Sao_Paulo BET ] -s,-7200,3,134,256,285 # 39 GMT-2:00 [ America/Noronha Atlantic/South_Georgia Etc/GMT+2 ] -s,-3600,3,251,253,281 # 40 GMT-1:00 [ Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 ] -d,-3600,2,-1,1,60,u,9,-1,1,60,u,60,2,151,248 # 41 GMT-1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Scoresbysund Atlantic/Azores ] -s,0,21,5,10,12,13,18,20,21,25,36,45,49,50,52,53,255,257,280,307,308,353,418 # 42 GMT+0:00 [ Africa/Abidjan Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/UCT Etc/UTC GMT UTC ] -d,0,5,1,0,0,w,8,1,0,0,w,60,1,26 # 43 GMT+0:00 Jun 1 0:00 Sep 1 0:00 1:00 [ Africa/Freetown ] -d,0,2,-1,1,60,u,9,-1,1,60,u,60,8,250,252,254,312,320,326,327,420 # 44 GMT+0:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London WET ] -d,0,8,1,0,0,w,11,31,0,0,w,20,1,6 # 45 GMT+0:00 Sep 1 0:00 Dec 31 0:00 0:20 [ Africa/Accra ] -s,3600,13,8,11,15,24,33,34,35,37,40,47,48,51,293 # 46 GMT+1:00 [ Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Etc/GMT-1 ] -d,3600,2,-1,1,60,u,9,-1,1,60,u,60,24,19,277,309,310,313,314,315,317,319,321,328,329,330,332,334,335,336,338,342,344,347,348,350,352 # 47 GMT+1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Africa/Ceuta ECT Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vienna Europe/Warsaw Europe/Zurich ] -d,3600,2,-1,1,120,s,9,-1,1,120,s,60,2,272,369 # 48 GMT+1:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ CET MET ] -d,3600,4,1,0,0,s,8,-1,1,0,s,60,1,55 # 49 GMT+1:00 May 1 0:00s Sep lastSun 0:00s 1:00 [ Africa/Tunis ] -d,3600,8,1,-1,120,w,3,1,-1,120,w,60,1,56 # 50 GMT+1:00 Sep Sun>=1 2:00 Apr Sun>=1 2:00 1:00 [ Africa/Windhoek ] -s,7200,16,14,16,27,28,32,38,39,41,42,43,54,271,299,337,343,349 # 51 GMT+2:00 [ Africa/Blantyre Africa/Bujumbura Africa/Gaborone Africa/Harare Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli CAT Etc/GMT-2 Europe/Riga Europe/Tallinn Europe/Vilnius ] -d,7200,3,1,0,0,w,9,1,0,0,w,60,1,193 # 52 GMT+2:00 Apr 1 0:00 Oct 1 0:00 1:00 [ Asia/Damascus ] -d,7200,3,1,0,60,w,9,6,0,60,w,60,1,204 # 53 GMT+2:00 Apr 1 1:00 Oct 6 1:00 1:00 [ Asia/Jerusalem ] -d,7200,3,15,-6,0,w,9,15,-6,0,w,60,1,197 # 54 GMT+2:00 Apr Fri>=15 0:00 Oct Fri>=15 0:00 1:00 [ Asia/Gaza ] -d,7200,3,-1,6,0,s,8,-1,5,1380,s,60,2,3,17 # 55 GMT+2:00 Apr lastFri 0:00s Sep lastThu 23:00s 1:00 [ ART Africa/Cairo ] -d,7200,2,-1,1,0,w,9,-1,1,0,w,60,1,186 # 56 GMT+2:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Beirut ] -d,7200,2,-1,1,60,u,9,-1,1,60,u,60,12,218,278,311,316,318,322,323,325,340,341,346,351 # 57 GMT+2:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Asia/Nicosia EET Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kiev Europe/Simferopol Europe/Sofia Europe/Uzhgorod Europe/Zaporozhye ] -d,7200,2,-1,1,120,s,9,-1,1,120,s,60,2,324,331 # 58 GMT+2:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Kaliningrad Europe/Minsk ] -d,7200,2,-1,5,0,s,8,-1,5,0,s,60,1,177 # 59 GMT+2:00 Mar lastThu 0:00s Sep lastThu 0:00s 1:00 [ Asia/Amman ] -d,7200,8,15,-1,120,w,2,15,-1,120,w,60,1,29 # 60 GMT+2:00 Sep Sun>=15 2:00 Mar Sun>=15 2:00 1:00 [ Africa/Johannesburg ] -s,10800,19,7,9,22,23,30,31,44,46,174,175,183,213,223,225,276,300,357,361,366 # 61 GMT+3:00 [ Africa/Addis_Ababa Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Indian/Antananarivo Indian/Comoro Indian/Mayotte ] -d,10800,3,1,0,180,s,9,1,0,180,s,60,1,182 # 62 GMT+3:00 Apr 1 3:00s Oct 1 3:00s 1:00 [ Asia/Baghdad ] -d,10800,2,-1,1,120,s,9,-1,1,120,s,60,2,333,345 # 63 GMT+3:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Moscow Europe/Tiraspol ] -s,11224,3,226,227,228 # 64 GMT+3:07:04 [ Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 ] -d,12600,2,20,0,0,w,8,22,0,0,w,60,1,237 # 65 GMT+3:30 Mar 20 0:00 Sep 22 0:00 1:00 [ Asia/Tehran ] -s,14400,6,195,217,301,363,365,367 # 66 GMT+4:00 [ Asia/Dubai Asia/Muscat Etc/GMT-4 Indian/Mahe Indian/Mauritius Indian/Reunion ] -d,14400,2,-1,1,0,w,9,-1,1,0,w,60,2,179,236 # 67 GMT+4:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Aqtau Asia/Tbilisi ] -d,14400,2,-1,1,60,w,9,-1,1,60,w,60,1,184 # 68 GMT+4:00 Mar lastSun 1:00 Oct lastSun 1:00 1:00 [ Asia/Baku ] -d,14400,2,-1,1,120,s,9,-1,1,120,s,60,3,247,339,372 # 69 GMT+4:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yerevan Europe/Samara NET ] -s,16200,1,205 # 70 GMT+4:30 [ Asia/Kabul ] -s,18000,10,181,196,207,230,235,302,358,362,364,374 # 71 GMT+5:00 [ Asia/Ashkhabad Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT ] -d,18000,2,-1,1,0,w,9,-1,1,0,w,60,1,180 # 72 GMT+5:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Aqtobe ] -d,18000,2,-1,1,120,s,9,-1,1,120,s,60,1,246 # 73 GMT+5:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yekaterinburg ] -d,18000,2,-1,1,150,w,9,-1,1,150,w,60,1,187 # 74 GMT+5:00 Mar lastSun 2:30 Oct lastSun 2:30 1:00 [ Asia/Bishkek ] -s,19800,2,189,356 # 75 GMT+5:30 [ Asia/Calcutta IST ] -s,20700,1,209 # 76 GMT+5:45 [ Asia/Katmandu ] -s,21600,6,171,191,192,238,270,303 # 77 GMT+6:00 [ Antarctica/Mawson Asia/Colombo Asia/Dacca Asia/Thimbu BST Etc/GMT-6 ] -d,21600,2,-1,1,0,w,9,-1,1,0,w,60,1,176 # 78 GMT+6:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Almaty ] -d,21600,2,-1,1,120,s,9,-1,1,120,s,60,2,219,220 # 79 GMT+6:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Novosibirsk Asia/Omsk ] -s,23400,2,224,360 # 80 GMT+6:30 [ Asia/Rangoon Indian/Cocos ] -s,25200,9,169,185,202,221,229,243,304,359,419 # 81 GMT+7:00 [ Antarctica/Davis Asia/Bangkok Asia/Jakarta Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST ] -d,25200,2,-1,1,0,w,8,-1,1,0,w,60,1,200 # 82 GMT+7:00 Mar lastSun 0:00 Sep lastSun 0:00 1:00 [ Asia/Hovd ] -d,25200,2,-1,1,120,s,9,-1,1,120,s,60,1,210 # 83 GMT+7:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Krasnoyarsk ] -s,28800,9,168,188,194,211,212,233,240,267,305 # 84 GMT+8:00 [ Antarctica/Casey Asia/Brunei Asia/Dili Asia/Kuala_Lumpur Asia/Kuching Asia/Singapore Asia/Ujung_Pandang Australia/Perth Etc/GMT-8 ] -d,28800,3,10,-1,0,w,8,11,-1,0,w,60,7,190,198,208,214,232,242,275 # 85 GMT+8:00 Apr Sun>=10 0:00 Sep Sun>=11 0:00 1:00 [ Asia/Chungking Asia/Harbin Asia/Kashgar Asia/Macao Asia/Shanghai Asia/Urumqi CTT ] -d,28800,5,30,0,0,w,8,30,0,0,w,60,1,234 # 86 GMT+8:00 Jun 30 0:00 Sep 30 0:00 1:00 [ Asia/Taipei ] -d,28800,2,22,0,0,w,8,21,0,0,w,60,1,216 # 87 GMT+8:00 Mar 22 0:00 Sep 21 0:00 1:00 [ Asia/Manila ] -d,28800,2,-1,1,0,w,8,-1,1,0,w,60,1,241 # 88 GMT+8:00 Mar lastSun 0:00 Sep lastSun 0:00 1:00 [ Asia/Ulaanbaatar ] -d,28800,2,-1,1,120,s,9,-1,1,120,s,60,1,201 # 89 GMT+8:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Irkutsk ] -d,28800,4,8,-1,210,w,9,16,-1,210,w,60,1,199 # 90 GMT+8:00 May Sun>=8 3:30 Oct Sun>=16 3:30 1:00 [ Asia/Hong_Kong ] -s,32400,6,203,222,239,306,368,404 # 91 GMT+9:00 [ Asia/Jayapura Asia/Pyongyang Asia/Tokyo Etc/GMT-9 JST Pacific/Palau ] -d,32400,2,-1,1,120,s,9,-1,1,120,s,60,1,245 # 92 GMT+9:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yakutsk ] -d,32400,4,-14,-1,0,w,9,-14,-1,0,w,60,1,231 # 93 GMT+9:00 May Sun<=14 0:00 Oct Sun<=14 0:00 1:00 [ Asia/Seoul ] -d,34200,9,3,0,120,w,2,-1,1,120,w,60,2,0,262 # 94 GMT+9:30 Oct 3 2:00 Mar lastSun 2:00 1:00 [ ACT Australia/Darwin ] -d,34200,9,-1,1,120,s,2,-1,1,120,s,60,2,259,261 # 95 GMT+9:30 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ Australia/Adelaide Australia/Broken_Hill ] -s,36000,7,170,294,390,407,409,413,416 # 96 GMT+10:00 [ Antarctica/DumontDUrville Etc/GMT-10 Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap ] -d,36000,2,-1,1,120,s,9,-1,1,120,s,60,1,244 # 97 GMT+10:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Vladivostok ] -d,36000,9,-1,1,120,s,2,-1,1,120,s,60,3,1,266,268 # 98 GMT+10:00 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ AET Australia/Melbourne Australia/Sydney ] -d,36000,9,-1,1,120,s,2,1,-1,120,s,60,2,260,264 # 99 GMT+10:00 Oct lastSun 2:00s Mar Sun>=1 2:00s 1:00 [ Australia/Brisbane Australia/Lindeman ] -d,36000,9,1,-1,120,s,2,-1,1,120,s,60,1,263 # 100 GMT+10:00 Oct Sun>=1 2:00s Mar lastSun 2:00s 1:00 [ Australia/Hobart ] -d,37800,9,-1,1,120,s,2,-1,1,120,s,30,1,265 # 101 GMT+10:30 Oct lastSun 2:00s Mar lastSun 2:00s 0:30 [ Australia/Lord_Howe ] -s,39600,5,295,389,394,406,417 # 102 GMT+11 [ Etc/GMT-11 Pacific/Guadalcanal Pacific/Kosrae Pacific/Ponape SST ] -d,39600,11,1,0,120,s,2,2,0,120,s,60,1,402 # 103 GMT+11:00 Dec 1 2:00s Mar 2 2:00s 1:00 [ Pacific/Noumea ] -d,39600,2,-1,1,120,s,9,-1,1,120,s,60,1,215 # 104 GMT+11:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Magadan ] -d,39600,9,23,-1,0,w,0,23,-1,0,w,60,1,382 # 105 GMT+11:00 Oct Sun>=23 0:00 Jan Sun>=23 0:00 1:00 [ Pacific/Efate ] -s,41400,1,401 # 106 GMT+11:30 [ Pacific/Norfolk ] -s,43200,8,296,386,395,396,399,411,414,415 # 107 GMT+12 [ Etc/GMT-12 Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis ] -d,43200,2,-1,1,120,s,9,-1,1,120,s,60,2,178,206 # 108 GMT+12:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Anadyr Asia/Kamchatka ] -d,43200,10,1,-1,120,w,1,-1,1,180,w,60,1,385 # 109 GMT+12:00 Nov Sun>=1 2:00 Feb lastSun 3:00 1:00 [ Pacific/Fiji ] -d,43200,9,1,-1,120,s,2,15,-1,120,s,60,3,172,373,379 # 110 GMT+12:00 Oct Sun>=1 2:00s Mar Sun>=15 2:00s 1:00 [ Antarctica/McMurdo NST Pacific/Auckland ] -d,45900,9,1,-1,165,s,2,15,-1,165,s,60,1,380 # 111 GMT+12:45 Oct Sun>=1 2:45s Mar Sun>=15 2:45s 1:00 [ Pacific/Chatham ] -s,46800,2,297,383 # 112 GMT+13 [ Etc/GMT-13 Pacific/Enderbury ] -d,46800,9,1,-7,120,s,3,16,-1,120,s,60,1,412 # 113 GMT+13:00 Oct Sat>=1 2:00s Apr Sun>=16 2:00s 1:00 [ Pacific/Tongatapu ] -s,50400,2,298,393 # 114 GMT+14 [ Etc/GMT-14 Pacific/Kiritimati ] +d,-36000,9,-1,1,0,w,2,1,-1,0,w,30,1,419 # 4 GMT-10:00 Oct lastSun 0:00 Mar Sun>=1 0:00 0:30 [ Pacific/Rarotonga ] +s,-34200,1,408 # 5 GMT-9:30 [ Pacific/Marquesas ] +s,-32400,2,296,399 # 6 GMT-9 [ Etc/GMT+9 Pacific/Gambier ] +d,-32400,3,1,-1,120,w,9,-1,1,120,w,60,5,4,58,112,135,169 # 7 GMT-9:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ AST America/Anchorage America/Juneau America/Nome America/Yakutat ] +s,-28800,2,295,416 # 8 GMT-8 [ Etc/GMT+8 Pacific/Pitcairn ] +d,-28800,3,1,-1,120,w,9,-1,1,120,w,60,6,83,116,164,166,167,388 # 9 GMT-8:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Dawson America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse PST ] +s,-25200,5,84,103,140,294,386 # 10 GMT-7:00 [ America/Dawson_Creek America/Hermosillo America/Phoenix Etc/GMT+7 PNT ] +d,-25200,3,1,-1,120,w,9,-1,1,120,w,60,8,69,78,85,88,108,122,170,382 # 11 GMT-7:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Boise America/Chihuahua America/Denver America/Edmonton America/Inuvik America/Mazatlan America/Yellowknife MST ] +s,-21600,5,119,149,160,293,398 # 12 GMT-6:00 [ America/Managua America/Regina America/Swift_Current Etc/GMT+6 Pacific/Galapagos ] +d,-21600,3,1,-1,120,w,9,-1,1,120,w,60,9,71,72,77,124,125,126,128,146,278 # 13 GMT-6:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Cambridge_Bay America/Cancun America/Chicago America/Menominee America/Merida America/Mexico_City America/Monterrey America/Rainy_River CST ] +d,-21600,3,1,-1,120,w,9,-1,1,120,s,60,1,168 # 14 GMT-6:00 Apr Sun>=1 2:00 Oct lastSun 2:00s 1:00 [ America/Winnipeg ] +d,-21600,11,18,0,0,w,1,12,0,0,w,60,1,66 # 15 GMT-6:00 Dec 18 0:00 Feb 12 0:00 1:00 [ America/Belize ] +d,-21600,0,15,-7,0,w,2,15,0,0,w,60,1,80 # 16 GMT-6:00 Jan Sat>=15 0:00 Mar 15 0:00 1:00 [ America/Costa_Rica ] +d,-21600,2,23,0,0,w,8,7,0,0,w,60,1,98 # 17 GMT-6:00 Mar 23 0:00 Sep 7 0:00 1:00 [ America/Guatemala ] +d,-21600,4,1,-1,0,w,8,-1,1,0,w,60,2,90,161 # 18 GMT-6:00 May Sun>=1 0:00 Sep lastSun 0:00 1:00 [ America/El_Salvador America/Tegucigalpa ] +d,-21600,9,9,-1,0,w,2,9,-1,0,w,60,1,392 # 19 GMT-6:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ Pacific/Easter ] +s,-18000,15,76,89,99,104,105,106,107,109,110,137,138,143,147,292,366 # 20 GMT-5:00 [ America/Cayman America/Eirunepe America/Guayaquil America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Iqaluit America/Jamaica America/Panama America/Pangnirtung America/Porto_Acre America/Rankin_Inlet Etc/GMT+5 IET ] +d,-18000,3,1,-1,0,w,9,-1,1,0,w,60,1,95 # 21 GMT-5:00 Apr Sun>=1 0:00 Oct lastSun 0:00 1:00 [ America/Grand_Turk ] +d,-18000,3,1,-1,0,s,9,-1,1,0,s,60,1,102 # 22 GMT-5:00 Apr Sun>=1 0:00s Oct lastSun 0:00s 1:00 [ America/Havana ] +d,-18000,3,1,-1,60,s,9,-1,1,60,s,60,1,141 # 23 GMT-5:00 Apr Sun>=1 1:00s Oct lastSun 1:00s 1:00 [ America/Port-au-Prince ] +d,-18000,3,1,-1,120,w,9,-1,1,120,w,60,9,86,113,117,130,132,133,134,163,283 # 24 GMT-5:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Detroit America/Kentucky/Monticello America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Thunder_Bay EST ] +d,-18000,0,1,0,0,w,3,1,0,0,w,60,1,115 # 25 GMT-5:00 Jan 1 0:00 Apr 1 0:00 1:00 [ America/Lima ] +d,-18000,4,2,0,0,w,11,31,0,0,w,60,1,68 # 26 GMT-5:00 May 2 0:00 Dec 31 0:00 1:00 [ America/Bogota ] +s,-14400,25,59,60,62,67,73,82,87,96,97,100,114,120,121,131,142,144,145,152,156,157,158,159,165,291,387 # 27 GMT-4:00 [ America/Anguilla America/Antigua America/Aruba America/Boa_Vista America/Caracas America/Curacao America/Dominica America/Grenada America/Guadeloupe America/Guyana America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Tortola Etc/GMT+4 PRT ] +d,-14400,3,1,-1,1,w,9,-1,1,1,w,60,1,94 # 28 GMT-4:00 Apr Sun>=1 0:01 Oct lastSun 0:01 1:00 [ America/Goose_Bay ] +d,-14400,3,1,-1,120,w,9,-1,1,120,w,60,4,92,101,162,253 # 29 GMT-4:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Glace_Bay America/Halifax America/Thule Atlantic/Bermuda ] +d,-14400,3,15,-1,120,w,8,25,0,120,w,60,1,64 # 30 GMT-4:00 Apr Sun>=15 2:00 Sep 25 2:00 1:00 [ America/Barbados ] +d,-14400,9,1,-1,0,w,1,-1,1,0,w,60,1,63 # 31 GMT-4:00 Oct Sun>=1 0:00 Feb lastSun 0:00 1:00 [ America/Asuncion ] +d,-14400,9,8,-1,0,w,1,15,-1,0,w,60,1,81 # 32 GMT-4:00 Oct Sun>=8 0:00 Feb Sun>=15 0:00 1:00 [ America/Cuiaba ] +d,-14400,9,9,-1,0,w,2,9,-1,0,w,60,2,151,176 # 33 GMT-4:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ America/Santiago Antarctica/Palmer ] +d,-14400,8,8,-1,0,w,3,16,-1,0,w,60,1,262 # 34 GMT-4:00 Sep Sun>=8 0:00 Apr Sun>=16 0:00 1:00 [ Atlantic/Stanley ] +d,-12600,3,1,-1,1,w,9,-1,1,1,w,60,2,155,277 # 35 GMT-3:30 Apr Sun>=1 0:01 Oct lastSun 0:01 1:00 [ America/St_Johns CNT ] +s,-10800,14,2,65,70,74,75,79,91,111,118,123,139,148,150,290 # 36 GMT-3:00 [ AGT America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Fortaleza America/Jujuy America/Maceio America/Mendoza America/Paramaribo America/Recife America/Rosario Etc/GMT+3 ] +d,-10800,3,1,-1,120,w,9,-1,1,120,w,60,1,127 # 37 GMT-3:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Miquelon ] +d,-10800,2,-1,1,60,u,9,-1,1,60,u,60,1,93 # 38 GMT-3:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Godthab ] +d,-10800,9,18,0,0,w,1,28,0,0,w,60,1,129 # 39 GMT-3:00 Oct 18 0:00 Feb 28 0:00 1:00 [ America/Montevideo ] +d,-10800,9,8,-1,0,w,1,15,-1,0,w,60,3,61,153,273 # 40 GMT-3:00 Oct Sun>=8 0:00 Feb Sun>=15 0:00 1:00 [ America/Araguaina America/Sao_Paulo BET ] +s,-7200,3,136,260,289 # 41 GMT-2:00 [ America/Noronha Atlantic/South_Georgia Etc/GMT+2 ] +s,-3600,3,255,257,285 # 42 GMT-1:00 [ Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 ] +d,-3600,2,-1,1,60,u,9,-1,1,60,u,60,2,154,252 # 43 GMT-1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Scoresbysund Atlantic/Azores ] +s,0,21,5,10,12,13,18,20,21,25,36,45,49,50,52,53,259,261,284,311,312,364,429 # 44 GMT+0:00 [ Africa/Abidjan Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/UCT Etc/UTC GMT UTC ] +d,0,5,1,0,0,w,8,1,0,0,w,60,1,26 # 45 GMT+0:00 Jun 1 0:00 Sep 1 0:00 1:00 [ Africa/Freetown ] +d,0,2,-1,1,60,u,9,-1,1,60,u,60,8,254,256,258,316,325,331,333,431 # 46 GMT+0:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London WET ] +d,0,8,1,0,0,w,11,31,0,0,w,20,1,6 # 47 GMT+0:00 Sep 1 0:00 Dec 31 0:00 0:20 [ Africa/Accra ] +s,3600,13,8,11,15,24,33,34,35,37,40,47,48,51,297 # 48 GMT+1:00 [ Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Etc/GMT-1 ] +d,3600,2,-1,1,60,u,9,-1,1,60,u,60,32,19,178,281,313,314,317,318,319,320,322,324,326,332,334,335,336,338,340,341,342,344,346,347,349,351,353,356,357,358,360,361,363 # 49 GMT+1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Africa/Ceuta Arctic/Longyearbyen ECT Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Ljubljana Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/San_Marino Europe/Sarajevo Europe/Skopje Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Warsaw Europe/Zagreb Europe/Zurich ] +d,3600,2,-1,1,120,s,9,-1,1,120,s,60,2,276,380 # 50 GMT+1:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ CET MET ] +d,3600,4,1,0,0,s,8,-1,1,0,s,60,1,55 # 51 GMT+1:00 May 1 0:00s Sep lastSun 0:00s 1:00 [ Africa/Tunis ] +d,3600,8,1,-1,120,w,3,1,-1,120,w,60,1,56 # 52 GMT+1:00 Sep Sun>=1 2:00 Apr Sun>=1 2:00 1:00 [ Africa/Windhoek ] +s,7200,16,14,16,27,28,32,38,39,41,42,43,54,275,303,343,352,359 # 53 GMT+2:00 [ Africa/Blantyre Africa/Bujumbura Africa/Gaborone Africa/Harare Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli CAT Etc/GMT-2 Europe/Riga Europe/Tallinn Europe/Vilnius ] +d,7200,3,1,0,0,w,9,1,0,0,w,60,1,196 # 54 GMT+2:00 Apr 1 0:00 Oct 1 0:00 1:00 [ Asia/Damascus ] +d,7200,3,1,0,60,w,8,24,0,60,w,60,1,208 # 55 GMT+2:00 Apr 1 1:00 Sep 24 1:00 1:00 [ Asia/Jerusalem ] +d,7200,3,15,-6,0,w,9,15,-6,0,w,60,1,201 # 56 GMT+2:00 Apr Fri>=15 0:00 Oct Fri>=15 0:00 1:00 [ Asia/Gaza ] +d,7200,3,-1,6,0,s,8,-1,5,1380,s,60,2,3,17 # 57 GMT+2:00 Apr lastFri 0:00s Sep lastThu 23:00s 1:00 [ ART Africa/Cairo ] +d,7200,2,-1,1,0,w,9,-1,1,0,w,60,1,190 # 58 GMT+2:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Beirut ] +d,7200,2,-1,1,60,u,9,-1,1,60,u,60,12,222,282,315,321,323,327,328,330,348,350,355,362 # 59 GMT+2:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Asia/Nicosia EET Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kiev Europe/Simferopol Europe/Sofia Europe/Uzhgorod Europe/Zaporozhye ] +d,7200,2,-1,1,120,s,9,-1,1,120,s,60,2,329,337 # 60 GMT+2:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Kaliningrad Europe/Minsk ] +d,7200,2,-1,5,0,s,8,-1,5,0,s,60,1,181 # 61 GMT+2:00 Mar lastThu 0:00s Sep lastThu 0:00s 1:00 [ Asia/Amman ] +d,7200,8,15,-1,120,w,2,15,-1,120,w,60,1,29 # 62 GMT+2:00 Sep Sun>=15 2:00 Mar Sun>=15 2:00 1:00 [ Africa/Johannesburg ] +s,10800,19,7,9,22,23,30,31,44,46,177,179,187,217,227,229,280,304,368,372,377 # 63 GMT+3:00 [ Africa/Addis_Ababa Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Indian/Antananarivo Indian/Comoro Indian/Mayotte ] +d,10800,3,1,0,180,s,9,1,0,180,s,60,1,186 # 64 GMT+3:00 Apr 1 3:00s Oct 1 3:00s 1:00 [ Asia/Baghdad ] +d,10800,2,-1,1,120,s,9,-1,1,120,s,60,2,339,354 # 65 GMT+3:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Moscow Europe/Tiraspol ] +s,11224,3,230,231,232 # 66 GMT+3:07:04 [ Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 ] +d,12600,2,20,0,0,w,8,23,0,0,w,60,1,241 # 67 GMT+3:30 Mar 20 0:00 Sep 23 0:00 1:00 [ Asia/Tehran ] +s,14400,6,199,221,305,374,376,378 # 68 GMT+4:00 [ Asia/Dubai Asia/Muscat Etc/GMT-4 Indian/Mahe Indian/Mauritius Indian/Reunion ] +d,14400,2,-1,1,0,w,9,-1,1,0,w,60,2,183,240 # 69 GMT+4:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Aqtau Asia/Tbilisi ] +d,14400,2,-1,1,60,w,9,-1,1,60,w,60,1,188 # 70 GMT+4:00 Mar lastSun 1:00 Oct lastSun 1:00 1:00 [ Asia/Baku ] +d,14400,2,-1,1,120,s,9,-1,1,120,s,60,3,251,345,383 # 71 GMT+4:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yerevan Europe/Samara NET ] +s,16200,1,209 # 72 GMT+4:30 [ Asia/Kabul ] +s,18000,10,185,200,211,234,239,306,369,373,375,385 # 73 GMT+5:00 [ Asia/Ashgabat Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT ] +d,18000,2,-1,1,0,w,9,-1,1,0,w,60,1,184 # 74 GMT+5:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Aqtobe ] +d,18000,2,-1,1,120,s,9,-1,1,120,s,60,1,250 # 75 GMT+5:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yekaterinburg ] +d,18000,2,-1,1,150,w,9,-1,1,150,w,60,1,191 # 76 GMT+5:00 Mar lastSun 2:30 Oct lastSun 2:30 1:00 [ Asia/Bishkek ] +s,19800,2,193,367 # 77 GMT+5:30 [ Asia/Calcutta IST ] +s,20700,1,213 # 78 GMT+5:45 [ Asia/Katmandu ] +s,21600,6,174,195,197,242,274,307 # 79 GMT+6:00 [ Antarctica/Mawson Asia/Colombo Asia/Dhaka Asia/Thimphu BST Etc/GMT-6 ] +d,21600,2,-1,1,0,w,9,-1,1,0,w,60,1,180 # 80 GMT+6:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Almaty ] +d,21600,2,-1,1,120,s,9,-1,1,120,s,60,2,223,224 # 81 GMT+6:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Novosibirsk Asia/Omsk ] +s,23400,2,228,371 # 82 GMT+6:30 [ Asia/Rangoon Indian/Cocos ] +s,25200,9,172,189,206,225,233,247,308,370,430 # 83 GMT+7:00 [ Antarctica/Davis Asia/Bangkok Asia/Jakarta Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST ] +d,25200,2,-1,1,0,w,8,-1,1,0,w,60,1,204 # 84 GMT+7:00 Mar lastSun 0:00 Sep lastSun 0:00 1:00 [ Asia/Hovd ] +d,25200,2,-1,1,120,s,9,-1,1,120,s,60,1,214 # 85 GMT+7:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Krasnoyarsk ] +s,28800,8,171,192,215,216,237,244,271,309 # 86 GMT+8:00 [ Antarctica/Casey Asia/Brunei Asia/Kuala_Lumpur Asia/Kuching Asia/Singapore Asia/Ujung_Pandang Australia/Perth Etc/GMT-8 ] +d,28800,3,10,-1,0,w,8,11,-1,0,w,60,7,194,202,212,218,236,246,279 # 87 GMT+8:00 Apr Sun>=10 0:00 Sep Sun>=11 0:00 1:00 [ Asia/Chungking Asia/Harbin Asia/Kashgar Asia/Macao Asia/Shanghai Asia/Urumqi CTT ] +d,28800,5,30,0,0,w,8,30,0,0,w,60,1,238 # 88 GMT+8:00 Jun 30 0:00 Sep 30 0:00 1:00 [ Asia/Taipei ] +d,28800,2,22,0,0,w,8,21,0,0,w,60,1,220 # 89 GMT+8:00 Mar 22 0:00 Sep 21 0:00 1:00 [ Asia/Manila ] +d,28800,2,-1,1,0,w,8,-1,1,0,w,60,1,245 # 90 GMT+8:00 Mar lastSun 0:00 Sep lastSun 0:00 1:00 [ Asia/Ulaanbaatar ] +d,28800,2,-1,1,120,s,9,-1,1,120,s,60,1,205 # 91 GMT+8:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Irkutsk ] +d,28800,4,8,-1,210,w,9,16,-1,210,w,60,1,203 # 92 GMT+8:00 May Sun>=8 3:30 Oct Sun>=16 3:30 1:00 [ Asia/Hong_Kong ] +s,32400,7,198,207,226,243,310,379,415 # 93 GMT+9:00 [ Asia/Dili Asia/Jayapura Asia/Pyongyang Asia/Tokyo Etc/GMT-9 JST Pacific/Palau ] +d,32400,2,-1,1,120,s,9,-1,1,120,s,60,1,249 # 94 GMT+9:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yakutsk ] +d,32400,4,-14,-1,0,w,9,-14,-1,0,w,60,1,235 # 95 GMT+9:00 May Sun<=14 0:00 Oct Sun<=14 0:00 1:00 [ Asia/Seoul ] +d,34200,9,3,0,120,w,2,-1,1,120,w,60,2,0,266 # 96 GMT+9:30 Oct 3 2:00 Mar lastSun 2:00 1:00 [ ACT Australia/Darwin ] +d,34200,9,-1,1,120,s,2,-1,1,120,s,60,2,263,265 # 97 GMT+9:30 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ Australia/Adelaide Australia/Broken_Hill ] +s,36000,7,173,298,401,418,420,424,427 # 98 GMT+10:00 [ Antarctica/DumontDUrville Etc/GMT-10 Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap ] +d,36000,2,-1,1,120,s,9,-1,1,120,s,60,1,248 # 99 GMT+10:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Vladivostok ] +d,36000,9,-1,1,120,s,2,-1,1,120,s,60,3,1,270,272 # 100 GMT+10:00 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ AET Australia/Melbourne Australia/Sydney ] +d,36000,9,-1,1,120,s,2,1,-1,120,s,60,2,264,268 # 101 GMT+10:00 Oct lastSun 2:00s Mar Sun>=1 2:00s 1:00 [ Australia/Brisbane Australia/Lindeman ] +d,36000,9,1,-1,120,s,2,-1,1,120,s,60,1,267 # 102 GMT+10:00 Oct Sun>=1 2:00s Mar lastSun 2:00s 1:00 [ Australia/Hobart ] +d,37800,9,-1,1,120,s,2,-1,1,120,s,30,1,269 # 103 GMT+10:30 Oct lastSun 2:00s Mar lastSun 2:00s 0:30 [ Australia/Lord_Howe ] +s,39600,5,299,400,405,417,428 # 104 GMT+11 [ Etc/GMT-11 Pacific/Guadalcanal Pacific/Kosrae Pacific/Ponape SST ] +d,39600,11,1,0,120,s,2,2,0,120,s,60,1,413 # 105 GMT+11:00 Dec 1 2:00s Mar 2 2:00s 1:00 [ Pacific/Noumea ] +d,39600,2,-1,1,120,s,9,-1,1,120,s,60,1,219 # 106 GMT+11:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Magadan ] +d,39600,9,23,-1,0,w,0,23,-1,0,w,60,1,393 # 107 GMT+11:00 Oct Sun>=23 0:00 Jan Sun>=23 0:00 1:00 [ Pacific/Efate ] +s,41400,1,412 # 108 GMT+11:30 [ Pacific/Norfolk ] +s,43200,8,300,397,406,407,410,422,425,426 # 109 GMT+12 [ Etc/GMT-12 Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis ] +d,43200,2,-1,1,120,s,9,-1,1,120,s,60,2,182,210 # 110 GMT+12:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Anadyr Asia/Kamchatka ] +d,43200,10,1,-1,120,w,1,-1,1,180,w,60,1,396 # 111 GMT+12:00 Nov Sun>=1 2:00 Feb lastSun 3:00 1:00 [ Pacific/Fiji ] +d,43200,9,1,-1,120,s,2,15,-1,120,s,60,3,175,384,390 # 112 GMT+12:00 Oct Sun>=1 2:00s Mar Sun>=15 2:00s 1:00 [ Antarctica/McMurdo NST Pacific/Auckland ] +d,45900,9,1,-1,165,s,2,15,-1,165,s,60,1,391 # 113 GMT+12:45 Oct Sun>=1 2:45s Mar Sun>=15 2:45s 1:00 [ Pacific/Chatham ] +s,46800,2,301,394 # 114 GMT+13 [ Etc/GMT-13 Pacific/Enderbury ] +d,46800,10,4,0,120,s,0,27,0,120,s,60,1,423 # 115 GMT+13:00 Nov 4 2:00s Jan 27 2:00s 1:00 [ Pacific/Tongatapu ] +s,50400,2,302,404 # 116 GMT+14 [ Etc/GMT-14 Pacific/Kiritimati ] end -#--- Offset index --- +#--- Offset INDEX --- #| gmt_offset,default_id,id_count,id_list 39 # index by offset entries to follow --43200,284,1,284 # -12:00 d=Etc/GMT+12 Etc/GMT+12 --39600,378,6,283,370,378,398,400,403 # -11:00 d=Pacific/Apia Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago --36000,391,8,57,282,354,384,391,392,408,410 # -10:00 d=Pacific/Honolulu America/Adak Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Rarotonga Pacific/Tahiti --34200,397,1,397 # -9:30 d=Pacific/Marquesas Pacific/Marquesas --32400,58,7,4,58,111,133,166,292,388 # -9:00 d=America/Anchorage AST America/Anchorage America/Juneau America/Nome America/Yakutat Etc/GMT+9 Pacific/Gambier --28800,114,8,83,114,161,163,164,291,377,405 # -8:00 d=America/Los_Angeles America/Dawson America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse Etc/GMT+8 PST Pacific/Pitcairn --25200,85,13,69,78,84,85,88,102,107,120,138,167,290,371,375 # -7:00 d=America/Denver America/Boise America/Chihuahua America/Dawson_Creek America/Denver America/Edmonton America/Hermosillo America/Inuvik America/Mazatlan America/Phoenix America/Yellowknife Etc/GMT+7 MST PNT --21600,77,24,66,71,72,77,80,89,97,108,117,122,123,124,126,136,144,145,146,157,158,165,274,289,381,387 # -6:00 d=America/Chicago America/Belize America/Cambridge_Bay America/Cancun America/Chicago America/Costa_Rica America/El_Salvador America/Guatemala America/Iqaluit America/Managua America/Menominee America/Merida America/Mexico_City America/Monterrey America/Pangnirtung America/Rainy_River America/Rankin_Inlet America/Regina America/Swift_Current America/Tegucigalpa America/Winnipeg CST Etc/GMT+6 Pacific/Easter Pacific/Galapagos --18000,106,24,68,76,86,94,98,101,103,104,105,106,109,113,115,128,130,131,132,135,139,141,160,279,288,355 # -5:00 d=America/Indianapolis America/Bogota America/Cayman America/Detroit America/Grand_Turk America/Guayaquil America/Havana America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Jamaica America/Lima America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Panama America/Port-au-Prince America/Porto_Acre America/Thunder_Bay EST Etc/GMT+5 IET --14400,143,36,59,60,62,63,64,67,73,81,82,87,91,93,95,96,99,100,112,118,119,129,140,142,143,148,149,153,154,155,156,159,162,173,249,258,287,376 # -4:00 d=America/Puerto_Rico America/Anguilla America/Antigua America/Aruba America/Asuncion America/Barbados America/Boa_Vista America/Caracas America/Cuiaba America/Curacao America/Dominica America/Glace_Bay America/Goose_Bay America/Grenada America/Guadeloupe America/Guyana America/Halifax America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santiago America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Thule America/Tortola Antarctica/Palmer Atlantic/Bermuda Atlantic/Stanley Etc/GMT+4 PRT --12600,152,2,152,273 # -3:30 d=America/St_Johns America/St_Johns CNT --10800,70,19,2,61,65,70,74,75,79,90,92,110,116,121,125,127,137,147,150,269,286 # -3:00 d=America/Buenos_Aires AGT America/Araguaina America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Fortaleza America/Godthab America/Jujuy America/Maceio America/Mendoza America/Miquelon America/Montevideo America/Paramaribo America/Rosario America/Sao_Paulo BET Etc/GMT+3 --7200,134,3,134,256,285 # -2:00 d=America/Noronha America/Noronha Atlantic/South_Georgia Etc/GMT+2 --3600,248,5,151,248,251,253,281 # -1:00 d=Atlantic/Azores America/Scoresbysund Atlantic/Azores Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 -0,353,31,5,6,10,12,13,18,20,21,25,26,36,45,49,50,52,53,250,252,254,255,257,280,307,308,312,320,326,327,353,418,420 # +0:00 d=GMT Africa/Abidjan Africa/Accra Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Freetown Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/UCT Etc/UTC Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London GMT UTC WET -3600,335,41,8,11,15,19,24,33,34,35,37,40,47,48,51,55,56,272,277,293,309,310,313,314,315,317,319,321,328,329,330,332,334,335,336,338,342,344,347,348,350,352,369 # +1:00 d=Europe/Paris Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Ceuta Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Africa/Tunis Africa/Windhoek CET ECT Etc/GMT-1 Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vienna Europe/Warsaw Europe/Zurich MET -7200,17,38,3,14,16,17,27,28,29,32,38,39,41,42,43,54,177,186,193,197,204,218,271,278,299,311,316,318,322,323,324,325,331,337,340,341,343,346,349,351 # +2:00 d=Africa/Cairo ART Africa/Blantyre Africa/Bujumbura Africa/Cairo Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli Asia/Amman Asia/Beirut Asia/Damascus Asia/Gaza Asia/Jerusalem Asia/Nicosia CAT EET Etc/GMT-2 Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kaliningrad Europe/Kiev Europe/Minsk Europe/Riga Europe/Simferopol Europe/Sofia Europe/Tallinn Europe/Uzhgorod Europe/Vilnius Europe/Zaporozhye -10800,7,22,7,9,22,23,30,31,44,46,174,175,182,183,213,223,225,276,300,333,345,357,361,366 # +3:00 d=Africa/Addis_Ababa Africa/Addis_Ababa Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Baghdad Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Europe/Moscow Europe/Tiraspol Indian/Antananarivo Indian/Comoro Indian/Mayotte -11224,228,3,226,227,228 # +3:07:04 d=Asia/Riyadh89 Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 -12600,237,1,237 # +3:30 d=Asia/Tehran Asia/Tehran -14400,247,12,179,184,195,217,236,247,301,339,363,365,367,372 # +4:00 d=Asia/Yerevan Asia/Aqtau Asia/Baku Asia/Dubai Asia/Muscat Asia/Tbilisi Asia/Yerevan Etc/GMT-4 Europe/Samara Indian/Mahe Indian/Mauritius Indian/Reunion NET -16200,205,1,205 # +4:30 d=Asia/Kabul Asia/Kabul -18000,207,13,180,181,187,196,207,230,235,246,302,358,362,364,374 # +5:00 d=Asia/Karachi Asia/Aqtobe Asia/Ashkhabad Asia/Bishkek Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Asia/Yekaterinburg Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT -19800,189,2,189,356 # +5:30 d=Asia/Calcutta Asia/Calcutta IST -20700,209,1,209 # +5:45 d=Asia/Katmandu Asia/Katmandu -21600,192,9,171,176,191,192,219,220,238,270,303 # +6:00 d=Asia/Dacca Antarctica/Mawson Asia/Almaty Asia/Colombo Asia/Dacca Asia/Novosibirsk Asia/Omsk Asia/Thimbu BST Etc/GMT-6 -23400,224,2,224,360 # +6:30 d=Asia/Rangoon Asia/Rangoon Indian/Cocos -25200,229,11,169,185,200,202,210,221,229,243,304,359,419 # +7:00 d=Asia/Saigon Antarctica/Davis Asia/Bangkok Asia/Hovd Asia/Jakarta Asia/Krasnoyarsk Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST -28800,232,21,168,188,190,194,198,199,201,208,211,212,214,216,232,233,234,240,241,242,267,275,305 # +8:00 d=Asia/Shanghai Antarctica/Casey Asia/Brunei Asia/Chungking Asia/Dili Asia/Harbin Asia/Hong_Kong Asia/Irkutsk Asia/Kashgar Asia/Kuala_Lumpur Asia/Kuching Asia/Macao Asia/Manila Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Ujung_Pandang Asia/Ulaanbaatar Asia/Urumqi Australia/Perth CTT Etc/GMT-8 -32400,239,8,203,222,231,239,245,306,368,404 # +9:00 d=Asia/Tokyo Asia/Jayapura Asia/Pyongyang Asia/Seoul Asia/Tokyo Asia/Yakutsk Etc/GMT-9 JST Pacific/Palau -34200,262,4,0,259,261,262 # +9:30 d=Australia/Darwin ACT Australia/Adelaide Australia/Broken_Hill Australia/Darwin -36000,268,14,1,170,244,260,263,264,266,268,294,390,407,409,413,416 # +10:00 d=Australia/Sydney AET Antarctica/DumontDUrville Asia/Vladivostok Australia/Brisbane Australia/Hobart Australia/Lindeman Australia/Melbourne Australia/Sydney Etc/GMT-10 Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap -37800,265,1,265 # +10:30 d=Australia/Lord_Howe Australia/Lord_Howe -39600,389,8,215,295,382,389,394,402,406,417 # +11:00 d=Pacific/Guadalcanal Asia/Magadan Etc/GMT-11 Pacific/Efate Pacific/Guadalcanal Pacific/Kosrae Pacific/Noumea Pacific/Ponape SST -41400,401,1,401 # +11:30 d=Pacific/Norfolk Pacific/Norfolk -43200,379,14,172,178,206,296,373,379,385,386,395,396,399,411,414,415 # +12:00 d=Pacific/Auckland Antarctica/McMurdo Asia/Anadyr Asia/Kamchatka Etc/GMT-12 NST Pacific/Auckland Pacific/Fiji Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis -45900,380,1,380 # +12:45 d=Pacific/Chatham Pacific/Chatham -46800,383,3,297,383,412 # +13:00 d=Pacific/Enderbury Etc/GMT-13 Pacific/Enderbury Pacific/Tongatapu -50400,393,2,298,393 # +14:00 d=Pacific/Kiritimati Etc/GMT-14 Pacific/Kiritimati +-43200,288,1,288 # -12:00 d=Etc/GMT+12 Etc/GMT+12 +-39600,389,6,287,381,389,409,411,414 # -11:00 d=Pacific/Apia Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago +-36000,402,8,57,286,365,395,402,403,419,421 # -10:00 d=Pacific/Honolulu America/Adak Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Rarotonga Pacific/Tahiti +-34200,408,1,408 # -9:30 d=Pacific/Marquesas Pacific/Marquesas +-32400,58,7,4,58,112,135,169,296,399 # -9:00 d=America/Anchorage AST America/Anchorage America/Juneau America/Nome America/Yakutat Etc/GMT+9 Pacific/Gambier +-28800,116,8,83,116,164,166,167,295,388,416 # -8:00 d=America/Los_Angeles America/Dawson America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse Etc/GMT+8 PST Pacific/Pitcairn +-25200,85,13,69,78,84,85,88,103,108,122,140,170,294,382,386 # -7:00 d=America/Denver America/Boise America/Chihuahua America/Dawson_Creek America/Denver America/Edmonton America/Hermosillo America/Inuvik America/Mazatlan America/Phoenix America/Yellowknife Etc/GMT+7 MST PNT +-21600,77,21,66,71,72,77,80,90,98,119,124,125,126,128,146,149,160,161,168,278,293,392,398 # -6:00 d=America/Chicago America/Belize America/Cambridge_Bay America/Cancun America/Chicago America/Costa_Rica America/El_Salvador America/Guatemala America/Managua America/Menominee America/Merida America/Mexico_City America/Monterrey America/Rainy_River America/Regina America/Swift_Current America/Tegucigalpa America/Winnipeg CST Etc/GMT+6 Pacific/Easter Pacific/Galapagos +-18000,107,29,68,76,86,89,95,99,102,104,105,106,107,109,110,113,115,117,130,132,133,134,137,138,141,143,147,163,283,292,366 # -5:00 d=America/Indianapolis America/Bogota America/Cayman America/Detroit America/Eirunepe America/Grand_Turk America/Guayaquil America/Havana America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Iqaluit America/Jamaica America/Kentucky/Monticello America/Lima America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Panama America/Pangnirtung America/Port-au-Prince America/Porto_Acre America/Rankin_Inlet America/Thunder_Bay EST Etc/GMT+5 IET +-14400,145,36,59,60,62,63,64,67,73,81,82,87,92,94,96,97,100,101,114,120,121,131,142,144,145,151,152,156,157,158,159,162,165,176,253,262,291,387 # -4:00 d=America/Puerto_Rico America/Anguilla America/Antigua America/Aruba America/Asuncion America/Barbados America/Boa_Vista America/Caracas America/Cuiaba America/Curacao America/Dominica America/Glace_Bay America/Goose_Bay America/Grenada America/Guadeloupe America/Guyana America/Halifax America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santiago America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Thule America/Tortola Antarctica/Palmer Atlantic/Bermuda Atlantic/Stanley Etc/GMT+4 PRT +-12600,155,2,155,277 # -3:30 d=America/St_Johns America/St_Johns CNT +-10800,70,20,2,61,65,70,74,75,79,91,93,111,118,123,127,129,139,148,150,153,273,290 # -3:00 d=America/Buenos_Aires AGT America/Araguaina America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Fortaleza America/Godthab America/Jujuy America/Maceio America/Mendoza America/Miquelon America/Montevideo America/Paramaribo America/Recife America/Rosario America/Sao_Paulo BET Etc/GMT+3 +-7200,136,3,136,260,289 # -2:00 d=America/Noronha America/Noronha Atlantic/South_Georgia Etc/GMT+2 +-3600,252,5,154,252,255,257,285 # -1:00 d=Atlantic/Azores America/Scoresbysund Atlantic/Azores Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 +0,364,31,5,6,10,12,13,18,20,21,25,26,36,45,49,50,52,53,254,256,258,259,261,284,311,312,316,325,331,333,364,429,431 # +0:00 d=GMT Africa/Abidjan Africa/Accra Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Freetown Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/UCT Etc/UTC Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London GMT UTC WET +3600,341,49,8,11,15,19,24,33,34,35,37,40,47,48,51,55,56,178,276,281,297,313,314,317,318,319,320,322,324,326,332,334,335,336,338,340,341,342,344,346,347,349,351,353,356,357,358,360,361,363,380 # +1:00 d=Europe/Paris Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Ceuta Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Africa/Tunis Africa/Windhoek Arctic/Longyearbyen CET ECT Etc/GMT-1 Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Ljubljana Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/San_Marino Europe/Sarajevo Europe/Skopje Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Warsaw Europe/Zagreb Europe/Zurich MET +7200,17,38,3,14,16,17,27,28,29,32,38,39,41,42,43,54,181,190,196,201,208,222,275,282,303,315,321,323,327,328,329,330,337,343,348,350,352,355,359,362 # +2:00 d=Africa/Cairo ART Africa/Blantyre Africa/Bujumbura Africa/Cairo Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli Asia/Amman Asia/Beirut Asia/Damascus Asia/Gaza Asia/Jerusalem Asia/Nicosia CAT EET Etc/GMT-2 Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kaliningrad Europe/Kiev Europe/Minsk Europe/Riga Europe/Simferopol Europe/Sofia Europe/Tallinn Europe/Uzhgorod Europe/Vilnius Europe/Zaporozhye +10800,7,22,7,9,22,23,30,31,44,46,177,179,186,187,217,227,229,280,304,339,354,368,372,377 # +3:00 d=Africa/Addis_Ababa Africa/Addis_Ababa Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Baghdad Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Europe/Moscow Europe/Tiraspol Indian/Antananarivo Indian/Comoro Indian/Mayotte +11224,232,3,230,231,232 # +3:07:04 d=Asia/Riyadh89 Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 +12600,241,1,241 # +3:30 d=Asia/Tehran Asia/Tehran +14400,251,12,183,188,199,221,240,251,305,345,374,376,378,383 # +4:00 d=Asia/Yerevan Asia/Aqtau Asia/Baku Asia/Dubai Asia/Muscat Asia/Tbilisi Asia/Yerevan Etc/GMT-4 Europe/Samara Indian/Mahe Indian/Mauritius Indian/Reunion NET +16200,209,1,209 # +4:30 d=Asia/Kabul Asia/Kabul +18000,211,13,184,185,191,200,211,234,239,250,306,369,373,375,385 # +5:00 d=Asia/Karachi Asia/Aqtobe Asia/Ashgabat Asia/Bishkek Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Asia/Yekaterinburg Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT +19800,193,2,193,367 # +5:30 d=Asia/Calcutta Asia/Calcutta IST +20700,213,1,213 # +5:45 d=Asia/Katmandu Asia/Katmandu +21600,197,9,174,180,195,197,223,224,242,274,307 # +6:00 d=Asia/Dhaka Antarctica/Mawson Asia/Almaty Asia/Colombo Asia/Dhaka Asia/Novosibirsk Asia/Omsk Asia/Thimphu BST Etc/GMT-6 +23400,228,2,228,371 # +6:30 d=Asia/Rangoon Asia/Rangoon Indian/Cocos +25200,233,11,172,189,204,206,214,225,233,247,308,370,430 # +7:00 d=Asia/Saigon Antarctica/Davis Asia/Bangkok Asia/Hovd Asia/Jakarta Asia/Krasnoyarsk Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST +28800,236,20,171,192,194,202,203,205,212,215,216,218,220,236,237,238,244,245,246,271,279,309 # +8:00 d=Asia/Shanghai Antarctica/Casey Asia/Brunei Asia/Chungking Asia/Harbin Asia/Hong_Kong Asia/Irkutsk Asia/Kashgar Asia/Kuala_Lumpur Asia/Kuching Asia/Macao Asia/Manila Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Ujung_Pandang Asia/Ulaanbaatar Asia/Urumqi Australia/Perth CTT Etc/GMT-8 +32400,243,9,198,207,226,235,243,249,310,379,415 # +9:00 d=Asia/Tokyo Asia/Dili Asia/Jayapura Asia/Pyongyang Asia/Seoul Asia/Tokyo Asia/Yakutsk Etc/GMT-9 JST Pacific/Palau +34200,266,4,0,263,265,266 # +9:30 d=Australia/Darwin ACT Australia/Adelaide Australia/Broken_Hill Australia/Darwin +36000,272,14,1,173,248,264,267,268,270,272,298,401,418,420,424,427 # +10:00 d=Australia/Sydney AET Antarctica/DumontDUrville Asia/Vladivostok Australia/Brisbane Australia/Hobart Australia/Lindeman Australia/Melbourne Australia/Sydney Etc/GMT-10 Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap +37800,269,1,269 # +10:30 d=Australia/Lord_Howe Australia/Lord_Howe +39600,400,8,219,299,393,400,405,413,417,428 # +11:00 d=Pacific/Guadalcanal Asia/Magadan Etc/GMT-11 Pacific/Efate Pacific/Guadalcanal Pacific/Kosrae Pacific/Noumea Pacific/Ponape SST +41400,412,1,412 # +11:30 d=Pacific/Norfolk Pacific/Norfolk +43200,390,14,175,182,210,300,384,390,396,397,406,407,410,422,425,426 # +12:00 d=Pacific/Auckland Antarctica/McMurdo Asia/Anadyr Asia/Kamchatka Etc/GMT-12 NST Pacific/Auckland Pacific/Fiji Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis +45900,391,1,391 # +12:45 d=Pacific/Chatham Pacific/Chatham +46800,394,3,301,394,423 # +13:00 d=Pacific/Enderbury Etc/GMT-13 Pacific/Enderbury Pacific/Tongatapu +50400,404,2,302,404 # +14:00 d=Pacific/Kiritimati Etc/GMT-14 Pacific/Kiritimati +end + +#--- Country INDEX --- +#| country_int_code,id_count,id_list +238 # index by country entries to follow +0,38,230,231,232,276,282,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,364,380,429,431 # (None) Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 CET EET Etc/GMT 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-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/UCT Etc/UTC GMT MET UTC WET +3,1,314 # AD (Andorra) Europe/Andorra +4,1,199 # AE (United Arab Emirates) Asia/Dubai +5,1,209 # AF (Afghanistan) Asia/Kabul +6,1,60 # AG (Antigua & Barbuda) America/Antigua +8,1,59 # AI (Anguilla) America/Anguilla +11,1,353 # AL (Albania) Europe/Tirane +12,2,251,383 # AM (Armenia) Asia/Yerevan NET +13,1,82 # AN (Netherlands Antilles) America/Curacao +14,1,37 # AO (Angola) Africa/Luanda +16,7,171,172,173,174,175,176,177 # AQ (Antarctica) Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/McMurdo Antarctica/Palmer Antarctica/Syowa +17,7,2,70,74,79,111,123,150 # AR (Argentina) AGT America/Buenos_Aires America/Catamarca America/Cordoba America/Jujuy America/Mendoza America/Rosario +18,1,414 # AS (Samoa (American)) Pacific/Pago_Pago +19,1,358 # AT (Austria) Europe/Vienna +20,12,0,1,263,264,265,266,267,268,269,270,271,272 # AU (Australia) ACT AET Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Darwin Australia/Hobart Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/Perth Australia/Sydney +22,1,62 # AW (Aruba) America/Aruba +25,1,188 # AZ (Azerbaijan) Asia/Baku +32,1,347 # BA (Bosnia & Herzegovina) Europe/Sarajevo +33,1,64 # BB (Barbados) America/Barbados +35,2,197,274 # BD (Bangladesh) Asia/Dhaka BST +36,1,320 # BE (Belgium) Europe/Brussels +37,1,50 # BF (Burkina Faso) Africa/Ouagadougou +38,1,350 # BG (Bulgaria) Europe/Sofia +39,1,187 # BH (Bahrain) Asia/Bahrain +40,1,16 # BI (Burundi) Africa/Bujumbura +41,1,51 # BJ (Benin) Africa/Porto-Novo +44,1,253 # BM (Bermuda) Atlantic/Bermuda +45,1,192 # BN (Brunei) Asia/Brunei +46,1,114 # BO (Bolivia) America/La_Paz +49,14,61,65,67,81,89,91,118,120,136,143,144,148,153,273 # BR (Brazil) America/Araguaina America/Belem America/Boa_Vista America/Cuiaba America/Eirunepe America/Fortaleza America/Maceio America/Manaus America/Noronha America/Porto_Acre America/Porto_Velho America/Recife America/Sao_Paulo BET +50,1,132 # BS (Bahamas) America/Nassau +51,1,242 # BT (Bhutan) Asia/Thimphu +54,1,27 # BW (Botswana) Africa/Gaborone +56,1,337 # BY (Belarus) Europe/Minsk +57,1,66 # BZ (Belize) America/Belize +64,23,71,83,84,88,92,94,101,108,109,130,134,138,146,147,149,155,160,163,166,167,168,170,277 # CA (Canada) America/Cambridge_Bay America/Dawson America/Dawson_Creek America/Edmonton America/Glace_Bay America/Goose_Bay America/Halifax America/Inuvik America/Iqaluit America/Montreal America/Nipigon America/Pangnirtung America/Rainy_River America/Rankin_Inlet America/Regina America/St_Johns America/Swift_Current America/Thunder_Bay America/Vancouver America/Whitehorse America/Winnipeg America/Yellowknife CNT +66,1,371 # CC (Cocos (Keeling) Islands) Indian/Cocos +67,2,33,38 # CD (Congo (Dem. Rep.)) Africa/Kinshasa Africa/Lubumbashi +69,1,11 # CF (Central African Rep.) Africa/Bangui +70,1,15 # CG (Congo (Rep.)) Africa/Brazzaville +71,1,363 # CH (Switzerland) Europe/Zurich +72,1,5 # CI (Cote d'Ivoire) Africa/Abidjan +74,1,419 # CK (Cook Islands) Pacific/Rarotonga +75,2,151,392 # CL (Chile) America/Santiago Pacific/Easter +76,1,24 # CM (Cameroon) Africa/Douala +77,6,194,202,212,236,246,279 # CN (China) Asia/Chungking Asia/Harbin Asia/Kashgar Asia/Shanghai Asia/Urumqi CTT +78,1,68 # CO (Colombia) America/Bogota +81,1,80 # CR (Costa Rica) America/Costa_Rica +84,1,102 # CU (Cuba) America/Havana +85,1,255 # CV (Cape Verde) Atlantic/Cape_Verde +87,1,370 # CX (Christmas Island) Indian/Christmas +88,1,222 # CY (Cyprus) Asia/Nicosia +89,1,342 # CZ (Czech Republic) Europe/Prague +100,1,318 # DE (Germany) Europe/Berlin +105,1,23 # DJ (Djibouti) Africa/Djibouti +106,1,324 # DK (Denmark) Europe/Copenhagen +108,1,87 # DM (Dominica) America/Dominica +110,1,152 # DO (Dominican Republic) America/Santo_Domingo +121,1,8 # DZ (Algeria) Africa/Algiers +130,2,99,398 # EC (Ecuador) America/Guayaquil Pacific/Galapagos +132,1,352 # EE (Estonia) Europe/Tallinn +134,2,3,17 # EG (Egypt) ART Africa/Cairo +135,1,25 # EH (Western Sahara) Africa/El_Aaiun +145,1,9 # ER (Eritrea) Africa/Asmera +146,3,19,254,335 # ES (Spain) Africa/Ceuta Atlantic/Canary Europe/Madrid +147,2,7,280 # ET (Ethiopia) Africa/Addis_Ababa EAT +168,1,327 # FI (Finland) Europe/Helsinki +169,1,396 # FJ (Fiji) Pacific/Fiji +170,1,262 # FK (Falkland Islands) Atlantic/Stanley +172,4,405,417,424,427 # FM (Micronesia) Pacific/Kosrae Pacific/Ponape Pacific/Truk Pacific/Yap +174,1,256 # FO (Faeroe Islands) Atlantic/Faeroe +177,2,281,341 # FR (France) ECT Europe/Paris +192,1,35 # GA (Gabon) Africa/Libreville +193,2,316,333 # GB (Britain (UK)) Europe/Belfast Europe/London +195,1,96 # GD (Grenada) America/Grenada +196,1,240 # GE (Georgia) Asia/Tbilisi +197,1,75 # GF (French Guiana) America/Cayenne +199,1,6 # GH (Ghana) Africa/Accra +200,1,326 # GI (Gibraltar) Europe/Gibraltar +203,3,93,154,162 # GL (Greenland) America/Godthab America/Scoresbysund America/Thule +204,1,12 # GM (Gambia) Africa/Banjul +205,1,20 # GN (Guinea) Africa/Conakry +207,1,97 # GP (Guadeloupe) America/Guadeloupe +208,1,40 # GQ (Equatorial Guinea) Africa/Malabo +209,1,315 # GR (Greece) Europe/Athens +210,1,260 # GS (South Georgia & the South Sandwich Islands) Atlantic/South_Georgia +211,1,98 # GT (Guatemala) America/Guatemala +212,1,401 # GU (Guam) Pacific/Guam +214,1,13 # GW (Guinea-Bissau) Africa/Bissau +216,1,100 # GY (Guyana) America/Guyana +234,1,203 # HK (Hong Kong) Asia/Hong_Kong +237,1,161 # HN (Honduras) America/Tegucigalpa +241,1,361 # HR (Croatia) Europe/Zagreb +243,1,141 # HT (Haiti) America/Port-au-Prince +244,1,322 # HU (Hungary) Europe/Budapest +259,3,206,207,244 # ID (Indonesia) Asia/Jakarta Asia/Jayapura Asia/Ujung_Pandang +260,1,325 # IE (Ireland) Europe/Dublin +267,1,208 # IL (Israel) Asia/Jerusalem +269,2,193,367 # IN (India) Asia/Calcutta IST +270,1,369 # IO (British Indian Ocean Territory) Indian/Chagos +272,1,186 # IQ (Iraq) Asia/Baghdad +273,1,241 # IR (Iran) Asia/Tehran +274,1,259 # IS (Iceland) Atlantic/Reykjavik +275,1,344 # IT (Italy) Europe/Rome +300,1,110 # JM (Jamaica) America/Jamaica +302,1,181 # JO (Jordan) Asia/Amman +303,2,243,379 # JP (Japan) Asia/Tokyo JST +324,1,46 # KE (Kenya) Africa/Nairobi +326,1,191 # KG (Kyrgyzstan) Asia/Bishkek +327,1,225 # KH (Cambodia) Asia/Phnom_Penh +328,3,394,404,422 # KI (Kiribati) Pacific/Enderbury Pacific/Kiritimati Pacific/Tarawa +332,1,372 # KM (Comoros) Indian/Comoro +333,1,156 # KN (St Kitts & Nevis) America/St_Kitts +335,1,226 # KP (Korea (North)) Asia/Pyongyang +337,1,235 # KR (Korea (South)) Asia/Seoul +342,1,217 # KW (Kuwait) Asia/Kuwait +344,1,76 # KY (Cayman Islands) America/Cayman +345,3,180,183,184 # KZ (Kazakhstan) Asia/Almaty Asia/Aqtau Asia/Aqtobe +352,1,247 # LA (Laos) Asia/Vientiane +353,1,190 # LB (Lebanon) Asia/Beirut +354,1,157 # LC (St Lucia) America/St_Lucia +360,1,356 # LI (Liechtenstein) Europe/Vaduz +362,1,195 # LK (Sri Lanka) Asia/Colombo +369,1,45 # LR (Liberia) Africa/Monrovia +370,1,42 # LS (Lesotho) Africa/Maseru +371,1,359 # LT (Lithuania) Europe/Vilnius +372,1,334 # LU (Luxembourg) Europe/Luxembourg +373,1,343 # LV (Latvia) Europe/Riga +376,1,54 # LY (Libya) Africa/Tripoli +384,1,18 # MA (Morocco) Africa/Casablanca +386,1,338 # MC (Monaco) Europe/Monaco +387,2,323,354 # MD (Moldova) Europe/Chisinau Europe/Tiraspol +390,1,368 # MG (Madagascar) Indian/Antananarivo +391,2,406,407 # MH (Marshall Islands) Pacific/Kwajalein Pacific/Majuro +394,1,349 # MK (Macedonia) Europe/Skopje +395,2,10,53 # ML (Mali) Africa/Bamako Africa/Timbuktu +396,1,228 # MM (Myanmar (Burma)) Asia/Rangoon +397,2,204,245 # MN (Mongolia) Asia/Hovd Asia/Ulaanbaatar +398,1,218 # MO (Macao) Asia/Macao +399,1,420 # MP (Northern Mariana Islands) Pacific/Saipan +400,1,121 # MQ (Martinique) America/Martinique +401,1,49 # MR (Mauritania) Africa/Nouakchott +402,1,131 # MS (Montserrat) America/Montserrat +403,1,336 # MT (Malta) Europe/Malta +404,1,376 # MU (Mauritius) Indian/Mauritius +405,1,375 # MV (Maldives) Indian/Maldives +406,1,14 # MW (Malawi) Africa/Blantyre +407,8,72,78,103,122,125,126,128,164 # MX (Mexico) America/Cancun America/Chihuahua America/Hermosillo America/Mazatlan America/Merida America/Mexico_City America/Monterrey America/Tijuana +408,2,215,216 # MY (Malaysia) Asia/Kuala_Lumpur Asia/Kuching +409,1,41 # MZ (Mozambique) Africa/Maputo +416,1,56 # NA (Namibia) Africa/Windhoek +418,1,413 # NC (New Caledonia) Pacific/Noumea +420,1,48 # NE (Niger) Africa/Niamey +421,1,412 # NF (Norfolk Island) Pacific/Norfolk +422,1,34 # NG (Nigeria) Africa/Lagos +424,1,119 # NI (Nicaragua) America/Managua +427,1,313 # NL (Netherlands) Europe/Amsterdam +430,1,340 # NO (Norway) Europe/Oslo +431,1,213 # NP (Nepal) Asia/Katmandu +433,1,410 # NR (Nauru) Pacific/Nauru +436,1,411 # NU (Niue) Pacific/Niue +441,3,384,390,391 # NZ (New Zealand) NST Pacific/Auckland Pacific/Chatham +460,1,221 # OM (Oman) Asia/Muscat +480,1,137 # PA (Panama) America/Panama +484,1,115 # PE (Peru) America/Lima +485,3,399,408,421 # PF (French Polynesia) Pacific/Gambier Pacific/Marquesas Pacific/Tahiti +486,1,418 # PG (Papua New Guinea) Pacific/Port_Moresby +487,1,220 # PH (Philippines) Asia/Manila +490,2,211,385 # PK (Pakistan) Asia/Karachi PLT +491,1,360 # PL (Poland) Europe/Warsaw +492,1,127 # PM (St Pierre & Miquelon) America/Miquelon +493,1,416 # PN (Pitcairn) Pacific/Pitcairn +497,2,145,387 # PR (Puerto Rico) America/Puerto_Rico PRT +498,1,201 # PS (Palestine) Asia/Gaza +499,3,252,258,331 # PT (Portugal) Atlantic/Azores Atlantic/Madeira Europe/Lisbon +502,1,415 # PW (Palau) Pacific/Palau +504,1,63 # PY (Paraguay) America/Asuncion +512,1,227 # QA (Qatar) Asia/Qatar +548,1,378 # RE (Reunion) Indian/Reunion +558,1,321 # RO (Romania) Europe/Bucharest +564,13,182,205,210,214,219,223,224,248,249,250,329,339,345 # RU (Russia) Asia/Anadyr Asia/Irkutsk Asia/Kamchatka Asia/Krasnoyarsk Asia/Magadan Asia/Novosibirsk Asia/Omsk Asia/Vladivostok Asia/Yakutsk Asia/Yekaterinburg Europe/Kaliningrad Europe/Moscow Europe/Samara +566,1,32 # RW (Rwanda) Africa/Kigali +576,1,229 # SA (Saudi Arabia) Asia/Riyadh +577,2,400,428 # SB (Solomon Islands) Pacific/Guadalcanal SST +578,1,374 # SC (Seychelles) Indian/Mahe +579,1,31 # SD (Sudan) Africa/Khartoum +580,1,351 # SE (Sweden) Europe/Stockholm +582,1,237 # SG (Singapore) Asia/Singapore +583,1,261 # SH (St Helena) Atlantic/St_Helena +584,1,332 # SI (Slovenia) Europe/Ljubljana +585,2,178,257 # SJ (Svalbard & Jan Mayen) Arctic/Longyearbyen Atlantic/Jan_Mayen +586,1,319 # SK (Slovakia) Europe/Bratislava +587,1,26 # SL (Sierra Leone) Africa/Freetown +588,1,346 # SM (San Marino) Europe/San_Marino +589,1,21 # SN (Senegal) Africa/Dakar +590,1,44 # SO (Somalia) Africa/Mogadishu +593,1,139 # SR (Suriname) America/Paramaribo +595,1,52 # ST (Sao Tome & Principe) Africa/Sao_Tome +597,1,90 # SV (El Salvador) America/El_Salvador +600,1,196 # SY (Syria) Asia/Damascus +601,1,43 # SZ (Swaziland) Africa/Mbabane +610,1,95 # TC (Turks & Caicos Is) America/Grand_Turk +611,1,47 # TD (Chad) Africa/Ndjamena +613,1,373 # TF (French Southern & Antarctic Lands) Indian/Kerguelen +614,1,36 # TG (Togo) Africa/Lome +615,1,189 # TH (Thailand) Asia/Bangkok +617,1,200 # TJ (Tajikistan) Asia/Dushanbe +618,1,395 # TK (Tokelau) Pacific/Fakaofo +620,1,185 # TM (Turkmenistan) Asia/Ashgabat +621,1,55 # TN (Tunisia) Africa/Tunis +622,1,423 # TO (Tonga) Pacific/Tongatapu +623,1,198 # TP (East Timor) Asia/Dili +625,1,328 # TR (Turkey) Europe/Istanbul +627,1,142 # TT (Trinidad & Tobago) America/Port_of_Spain +629,1,397 # TV (Tuvalu) Pacific/Funafuti +630,1,238 # TW (Taiwan) Asia/Taipei +633,1,22 # TZ (Tanzania) Africa/Dar_es_Salaam +640,4,330,348,355,362 # UA (Ukraine) Europe/Kiev Europe/Simferopol Europe/Uzhgorod Europe/Zaporozhye +646,1,30 # UG (Uganda) Africa/Kampala +652,3,403,409,425 # UM (US minor outlying islands) Pacific/Johnston Pacific/Midway Pacific/Wake +658,28,4,57,58,69,77,85,86,104,105,106,107,112,113,116,117,124,133,135,140,169,278,283,365,366,382,386,388,402 # US (United States) AST America/Adak America/Anchorage America/Boise America/Chicago America/Denver America/Detroit America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Juneau America/Kentucky/Monticello America/Los_Angeles America/Louisville America/Menominee America/New_York America/Nome America/Phoenix America/Yakutat CST EST HST IET MST PNT PST Pacific/Honolulu +664,1,129 # UY (Uruguay) America/Montevideo +665,2,234,239 # UZ (Uzbekistan) Asia/Samarkand Asia/Tashkent +672,1,357 # VA (Vatican City) Europe/Vatican +674,1,159 # VC (St Vincent) America/St_Vincent +676,1,73 # VE (Venezuela) America/Caracas +678,1,165 # VG (Virgin Islands (UK)) America/Tortola +680,1,158 # VI (Virgin Islands (US)) America/St_Thomas +685,2,233,430 # VN (Vietnam) Asia/Saigon VST +692,1,393 # VU (Vanuatu) Pacific/Efate +709,1,426 # WF (Wallis & Futuna) Pacific/Wallis +722,2,381,389 # WS (Samoa (Western)) MIT Pacific/Apia +772,1,179 # YE (Yemen) Asia/Aden +787,1,377 # YT (Mayotte) Indian/Mayotte +788,1,317 # YU (Yugoslavia) Europe/Belgrade +800,1,29 # ZA (South Africa) Africa/Johannesburg +812,1,39 # ZM (Zambia) Africa/Lusaka +822,2,28,275 # ZW (Zimbabwe) Africa/Harare CAT end diff --git a/icu4c/docs/tz.htm b/icu4c/docs/tz.htm index 4d8d10e7f9e..84829096b04 100644 --- a/icu4c/docs/tz.htm +++ b/icu4c/docs/tz.htm @@ -11,11 +11,11 @@ - + - + @@ -27,7 +27,7 @@ - +
Versiontzdata2000f (2000.6)tzdata2000h (2000.8)
Total zone count421 in 115 equivalency groups432 in 117 equivalency groups
Original source
This document generatedWed Sep 27 09:26:30 2000Fri Feb 2 10:34:17 2001
@@ -122,29 +122,29 @@ for the host zone offset.

GMT-9:00AST, America/Anchorage, America/Juneau, America/Nome, America/Yakutat, Etc/GMT+9, Pacific/Gambier GMT-8:00America/Dawson, America/Los_Angeles, America/Tijuana, America/Vancouver, America/Whitehorse, Etc/GMT+8, PST, Pacific/Pitcairn GMT-7:00America/Boise, America/Chihuahua, America/Dawson_Creek, America/Denver, America/Edmonton, America/Hermosillo, America/Inuvik, America/Mazatlan, America/Phoenix, America/Yellowknife, Etc/GMT+7, MST, PNT -GMT-6:00America/Belize, America/Cambridge_Bay, America/Cancun, America/Chicago, America/Costa_Rica, America/El_Salvador, America/Guatemala, America/Iqaluit, America/Managua, America/Menominee, America/Merida, America/Mexico_City, America/Monterrey, America/Pangnirtung, America/Rainy_River, America/Rankin_Inlet, America/Regina, America/Swift_Current, America/Tegucigalpa, America/Winnipeg, CST, Etc/GMT+6, Pacific/Easter, Pacific/Galapagos -GMT-5:00America/Bogota, America/Cayman, America/Detroit, America/Grand_Turk, America/Guayaquil, America/Havana, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Vevay, America/Indianapolis, America/Jamaica, America/Lima, America/Louisville, America/Montreal, America/Nassau, America/New_York, America/Nipigon, America/Panama, America/Port-au-Prince, America/Porto_Acre, America/Thunder_Bay, EST, Etc/GMT+5, IET +GMT-6:00America/Belize, America/Cambridge_Bay, America/Cancun, America/Chicago, America/Costa_Rica, America/El_Salvador, America/Guatemala, America/Managua, America/Menominee, America/Merida, America/Mexico_City, America/Monterrey, America/Rainy_River, America/Regina, America/Swift_Current, America/Tegucigalpa, America/Winnipeg, CST, Etc/GMT+6, Pacific/Easter, Pacific/Galapagos +GMT-5:00America/Bogota, America/Cayman, America/Detroit, America/Eirunepe, America/Grand_Turk, America/Guayaquil, America/Havana, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Vevay, America/Indianapolis, America/Iqaluit, America/Jamaica, America/Kentucky/Monticello, America/Lima, America/Louisville, America/Montreal, America/Nassau, America/New_York, America/Nipigon, America/Panama, America/Pangnirtung, America/Port-au-Prince, America/Porto_Acre, America/Rankin_Inlet, America/Thunder_Bay, EST, Etc/GMT+5, IET GMT-4:00America/Anguilla, America/Antigua, America/Aruba, America/Asuncion, America/Barbados, America/Boa_Vista, America/Caracas, America/Cuiaba, America/Curacao, America/Dominica, America/Glace_Bay, America/Goose_Bay, America/Grenada, America/Guadeloupe, America/Guyana, America/Halifax, America/La_Paz, America/Manaus, America/Martinique, America/Montserrat, America/Port_of_Spain, America/Porto_Velho, America/Puerto_Rico, America/Santiago, America/Santo_Domingo, America/St_Kitts, America/St_Lucia, America/St_Thomas, America/St_Vincent, America/Thule, America/Tortola, Antarctica/Palmer, Atlantic/Bermuda, Atlantic/Stanley, Etc/GMT+4, PRT GMT-3:30America/St_Johns, CNT -GMT-3:00AGT, America/Araguaina, America/Belem, America/Buenos_Aires, America/Catamarca, America/Cayenne, America/Cordoba, America/Fortaleza, America/Godthab, America/Jujuy, America/Maceio, America/Mendoza, America/Miquelon, America/Montevideo, America/Paramaribo, America/Rosario, America/Sao_Paulo, BET, Etc/GMT+3 +GMT-3:00AGT, America/Araguaina, America/Belem, America/Buenos_Aires, America/Catamarca, America/Cayenne, America/Cordoba, America/Fortaleza, America/Godthab, America/Jujuy, America/Maceio, America/Mendoza, America/Miquelon, America/Montevideo, America/Paramaribo, America/Recife, America/Rosario, America/Sao_Paulo, BET, Etc/GMT+3 GMT-2:00America/Noronha, Atlantic/South_Georgia, Etc/GMT+2 GMT-1:00America/Scoresbysund, Atlantic/Azores, Atlantic/Cape_Verde, Atlantic/Jan_Mayen, Etc/GMT+1 GMT+0:00Africa/Abidjan, Africa/Accra, Africa/Bamako, Africa/Banjul, Africa/Bissau, Africa/Casablanca, Africa/Conakry, Africa/Dakar, Africa/El_Aaiun, Africa/Freetown, Africa/Lome, Africa/Monrovia, Africa/Nouakchott, Africa/Ouagadougou, Africa/Sao_Tome, Africa/Timbuktu, Atlantic/Canary, Atlantic/Faeroe, Atlantic/Madeira, Atlantic/Reykjavik, Atlantic/St_Helena, Etc/GMT, Etc/UCT, Etc/UTC, Europe/Belfast, Europe/Dublin, Europe/Lisbon, Europe/London, GMT, UTC, WET -GMT+1:00Africa/Algiers, Africa/Bangui, Africa/Brazzaville, Africa/Ceuta, Africa/Douala, Africa/Kinshasa, Africa/Lagos, Africa/Libreville, Africa/Luanda, Africa/Malabo, Africa/Ndjamena, Africa/Niamey, Africa/Porto-Novo, Africa/Tunis, Africa/Windhoek, CET, ECT, Etc/GMT-1, Europe/Amsterdam, Europe/Andorra, Europe/Belgrade, Europe/Berlin, Europe/Brussels, Europe/Budapest, Europe/Copenhagen, Europe/Gibraltar, Europe/Luxembourg, Europe/Madrid, Europe/Malta, Europe/Monaco, Europe/Oslo, Europe/Paris, Europe/Prague, Europe/Rome, Europe/Stockholm, Europe/Tirane, Europe/Vaduz, Europe/Vienna, Europe/Warsaw, Europe/Zurich, MET +GMT+1:00Africa/Algiers, Africa/Bangui, Africa/Brazzaville, Africa/Ceuta, Africa/Douala, Africa/Kinshasa, Africa/Lagos, Africa/Libreville, Africa/Luanda, Africa/Malabo, Africa/Ndjamena, Africa/Niamey, Africa/Porto-Novo, Africa/Tunis, Africa/Windhoek, Arctic/Longyearbyen, CET, ECT, Etc/GMT-1, Europe/Amsterdam, Europe/Andorra, Europe/Belgrade, Europe/Berlin, Europe/Bratislava, Europe/Brussels, Europe/Budapest, Europe/Copenhagen, Europe/Gibraltar, Europe/Ljubljana, Europe/Luxembourg, Europe/Madrid, Europe/Malta, Europe/Monaco, Europe/Oslo, Europe/Paris, Europe/Prague, Europe/Rome, Europe/San_Marino, Europe/Sarajevo, Europe/Skopje, Europe/Stockholm, Europe/Tirane, Europe/Vaduz, Europe/Vatican, Europe/Vienna, Europe/Warsaw, Europe/Zagreb, Europe/Zurich, MET GMT+2:00ART, Africa/Blantyre, Africa/Bujumbura, Africa/Cairo, Africa/Gaborone, Africa/Harare, Africa/Johannesburg, Africa/Kigali, Africa/Lubumbashi, Africa/Lusaka, Africa/Maputo, Africa/Maseru, Africa/Mbabane, Africa/Tripoli, Asia/Amman, Asia/Beirut, Asia/Damascus, Asia/Gaza, Asia/Jerusalem, Asia/Nicosia, CAT, EET, Etc/GMT-2, Europe/Athens, Europe/Bucharest, Europe/Chisinau, Europe/Helsinki, Europe/Istanbul, Europe/Kaliningrad, Europe/Kiev, Europe/Minsk, Europe/Riga, Europe/Simferopol, Europe/Sofia, Europe/Tallinn, Europe/Uzhgorod, Europe/Vilnius, Europe/Zaporozhye GMT+3:00Africa/Addis_Ababa, Africa/Asmera, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Kampala, Africa/Khartoum, Africa/Mogadishu, Africa/Nairobi, Antarctica/Syowa, Asia/Aden, Asia/Baghdad, Asia/Bahrain, Asia/Kuwait, Asia/Qatar, Asia/Riyadh, EAT, Etc/GMT-3, Europe/Moscow, Europe/Tiraspol, Indian/Antananarivo, Indian/Comoro, Indian/Mayotte GMT+3:07:04Asia/Riyadh87, Asia/Riyadh88, Asia/Riyadh89 GMT+3:30Asia/Tehran GMT+4:00Asia/Aqtau, Asia/Baku, Asia/Dubai, Asia/Muscat, Asia/Tbilisi, Asia/Yerevan, Etc/GMT-4, Europe/Samara, Indian/Mahe, Indian/Mauritius, Indian/Reunion, NET GMT+4:30Asia/Kabul -GMT+5:00Asia/Aqtobe, Asia/Ashkhabad, Asia/Bishkek, Asia/Dushanbe, Asia/Karachi, Asia/Samarkand, Asia/Tashkent, Asia/Yekaterinburg, Etc/GMT-5, Indian/Chagos, Indian/Kerguelen, Indian/Maldives, PLT +GMT+5:00Asia/Aqtobe, Asia/Ashgabat, Asia/Bishkek, Asia/Dushanbe, Asia/Karachi, Asia/Samarkand, Asia/Tashkent, Asia/Yekaterinburg, Etc/GMT-5, Indian/Chagos, Indian/Kerguelen, Indian/Maldives, PLT GMT+5:30Asia/Calcutta, IST GMT+5:45Asia/Katmandu -GMT+6:00Antarctica/Mawson, Asia/Almaty, Asia/Colombo, Asia/Dacca, Asia/Novosibirsk, Asia/Omsk, Asia/Thimbu, BST, Etc/GMT-6 +GMT+6:00Antarctica/Mawson, Asia/Almaty, Asia/Colombo, Asia/Dhaka, Asia/Novosibirsk, Asia/Omsk, Asia/Thimphu, BST, Etc/GMT-6 GMT+6:30Asia/Rangoon, Indian/Cocos GMT+7:00Antarctica/Davis, Asia/Bangkok, Asia/Hovd, Asia/Jakarta, Asia/Krasnoyarsk, Asia/Phnom_Penh, Asia/Saigon, Asia/Vientiane, Etc/GMT-7, Indian/Christmas, VST -GMT+8:00Antarctica/Casey, Asia/Brunei, Asia/Chungking, Asia/Dili, Asia/Harbin, Asia/Hong_Kong, Asia/Irkutsk, Asia/Kashgar, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Macao, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Asia/Ujung_Pandang, Asia/Ulaanbaatar, Asia/Urumqi, Australia/Perth, CTT, Etc/GMT-8 -GMT+9:00Asia/Jayapura, Asia/Pyongyang, Asia/Seoul, Asia/Tokyo, Asia/Yakutsk, Etc/GMT-9, JST, Pacific/Palau +GMT+8:00Antarctica/Casey, Asia/Brunei, Asia/Chungking, Asia/Harbin, Asia/Hong_Kong, Asia/Irkutsk, Asia/Kashgar, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Macao, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Asia/Ujung_Pandang, Asia/Ulaanbaatar, Asia/Urumqi, Australia/Perth, CTT, Etc/GMT-8 +GMT+9:00Asia/Dili, Asia/Jayapura, Asia/Pyongyang, Asia/Seoul, Asia/Tokyo, Asia/Yakutsk, Etc/GMT-9, JST, Pacific/Palau GMT+9:30ACT, Australia/Adelaide, Australia/Broken_Hill, Australia/Darwin GMT+10:00AET, Antarctica/DumontDUrville, Asia/Vladivostok, Australia/Brisbane, Australia/Hobart, Australia/Lindeman, Australia/Melbourne, Australia/Sydney, Etc/GMT-10, Pacific/Guam, Pacific/Port_Moresby, Pacific/Saipan, Pacific/Truk, Pacific/Yap GMT+10:30Australia/Lord_Howe @@ -235,13 +235,13 @@ time, depending on which is in effect).

America/AnchorageGMT-9:00Apr Sun>=1 2:00Oct lastSun 2:001:00alias AST America/AnguillaGMT-4:00 America/AntiguaGMT-4:00 -America/AraguainaGMT-3:00Oct Sun>=1 0:00Feb lastSun 0:001:00 +America/AraguainaGMT-3:00Oct Sun>=8 0:00Feb Sun>=15 0:001:00 America/ArubaGMT-4:00 -America/AsuncionGMT-4:00Oct Sun>=8 0:00Feb lastSun 0:001:00 +America/AsuncionGMT-4:00Oct Sun>=1 0:00Feb lastSun 0:001:00 America/BarbadosGMT-4:00Apr Sun>=15 2:00Sep 25 2:001:00 America/BelemGMT-3:00 America/BelizeGMT-6:00Dec 18 0:00Feb 12 0:001:00 -America/Boa_VistaGMT-4:00Oct Sun>=1 0:00Feb lastSun 0:001:00 +America/Boa_VistaGMT-4:00 America/BogotaGMT-5:00May 2 0:00Dec 31 0:001:00 America/BoiseGMT-7:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/Buenos_AiresGMT-3:00alias AGT @@ -255,7 +255,7 @@ time, depending on which is in effect).

America/ChihuahuaGMT-7:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/CordobaGMT-3:00 America/Costa_RicaGMT-6:00Jan Sat>=15 0:00Mar 15 0:001:00 -America/CuiabaGMT-4:00Oct Sun>=1 0:00Feb lastSun 0:001:00 +America/CuiabaGMT-4:00Oct Sun>=8 0:00Feb Sun>=15 0:001:00 America/CuracaoGMT-4:00 America/DawsonGMT-8:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/Dawson_CreekGMT-7:00 @@ -263,11 +263,12 @@ time, depending on which is in effect).

America/DetroitGMT-5:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/DominicaGMT-4:00 America/EdmontonGMT-7:00Apr Sun>=1 2:00Oct lastSun 2:001:00 +America/EirunepeGMT-5:00 America/El_SalvadorGMT-6:00May Sun>=1 0:00Sep lastSun 0:001:00 -America/FortalezaGMT-3:00Oct Sun>=1 0:00Feb lastSun 0:001:00 +America/FortalezaGMT-3:00 America/Glace_BayGMT-4:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/GodthabGMT-3:00Mar lastSun 1:00uOct lastSun 1:00u1:00 -America/Goose_BayGMT-4:00Apr Sun>=1 2:00Oct lastSun 2:001:00 +America/Goose_BayGMT-4:00Apr Sun>=1 0:01Oct lastSun 0:011:00 America/Grand_TurkGMT-5:00Apr Sun>=1 0:00Oct lastSun 0:001:00 America/GrenadaGMT-4:00 America/GuadeloupeGMT-4:00 @@ -282,15 +283,16 @@ time, depending on which is in effect).

America/Indiana/VevayGMT-5:00 America/IndianapolisGMT-5:00alias IET America/InuvikGMT-7:00Apr Sun>=1 2:00Oct lastSun 2:001:00 -America/IqaluitGMT-6:00Apr Sun>=1 2:00Oct lastSun 2:001:00 +America/IqaluitGMT-5:00 America/JamaicaGMT-5:00 America/JujuyGMT-3:00 America/JuneauGMT-9:00Apr Sun>=1 2:00Oct lastSun 2:001:00 +America/Kentucky/MonticelloGMT-5:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/La_PazGMT-4:00 America/LimaGMT-5:00Jan 1 0:00Apr 1 0:001:00 America/Los_AngelesGMT-8:00Apr Sun>=1 2:00Oct lastSun 2:001:00alias PST America/LouisvilleGMT-5:00Apr Sun>=1 2:00Oct lastSun 2:001:00 -America/MaceioGMT-3:00Oct Sun>=1 0:00Feb lastSun 0:001:00 +America/MaceioGMT-3:00 America/ManaguaGMT-6:00 America/ManausGMT-4:00 America/MartiniqueGMT-4:00 @@ -310,7 +312,7 @@ time, depending on which is in effect).

America/NomeGMT-9:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/NoronhaGMT-2:00 America/PanamaGMT-5:00 -America/PangnirtungGMT-6:00Apr Sun>=1 2:00Oct lastSun 2:001:00 +America/PangnirtungGMT-5:00 America/ParamariboGMT-3:00 America/PhoenixGMT-7:00alias PNT America/Port-au-PrinceGMT-5:00Apr Sun>=1 1:00sOct lastSun 1:00s1:00 @@ -319,14 +321,15 @@ time, depending on which is in effect).

America/Porto_VelhoGMT-4:00 America/Puerto_RicoGMT-4:00alias PRT America/Rainy_RiverGMT-6:00Apr Sun>=1 2:00Oct lastSun 2:001:00 -America/Rankin_InletGMT-6:00Apr Sun>=1 2:00Oct lastSun 2:001:00 +America/Rankin_InletGMT-5:00 +America/RecifeGMT-3:00 America/ReginaGMT-6:00 America/RosarioGMT-3:00 America/SantiagoGMT-4:00Oct Sun>=9 0:00Mar Sun>=9 0:001:00 America/Santo_DomingoGMT-4:00 -America/Sao_PauloGMT-3:00Oct Sun>=1 0:00Feb lastSun 0:001:00alias BET +America/Sao_PauloGMT-3:00Oct Sun>=8 0:00Feb Sun>=15 0:001:00alias BET America/ScoresbysundGMT-1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 -America/St_JohnsGMT-3:30Apr Sun>=1 2:00Oct lastSun 2:001:00alias CNT +America/St_JohnsGMT-3:30Apr Sun>=1 0:01Oct lastSun 0:011:00alias CNT America/St_KittsGMT-4:00 America/St_LuciaGMT-4:00 America/St_ThomasGMT-4:00 @@ -339,7 +342,7 @@ time, depending on which is in effect).

America/TortolaGMT-4:00 America/VancouverGMT-8:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/WhitehorseGMT-8:00Apr Sun>=1 2:00Oct lastSun 2:001:00 -America/WinnipegGMT-6:00Apr Sun>=1 2:00Oct lastSun 2:001:00 +America/WinnipegGMT-6:00Apr Sun>=1 2:00Oct lastSun 2:00s1:00 America/YakutatGMT-9:00Apr Sun>=1 2:00Oct lastSun 2:001:00 America/YellowknifeGMT-7:00Apr Sun>=1 2:00Oct lastSun 2:001:00 Antarctica/CaseyGMT+8:00 @@ -349,13 +352,14 @@ time, depending on which is in effect).

Antarctica/McMurdoGMT+12:00Oct Sun>=1 2:00sMar Sun>=15 2:00s1:00 Antarctica/PalmerGMT-4:00Oct Sun>=9 0:00Mar Sun>=9 0:001:00 Antarctica/SyowaGMT+3:00 +Arctic/LongyearbyenGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Asia/AdenGMT+3:00 Asia/AlmatyGMT+6:00Mar lastSun 0:00Oct lastSun 0:001:00 Asia/AmmanGMT+2:00Mar lastThu 0:00sSep lastThu 0:00s1:00 Asia/AnadyrGMT+12:00Mar lastSun 2:00sOct lastSun 2:00s1:00 Asia/AqtauGMT+4:00Mar lastSun 0:00Oct lastSun 0:001:00 Asia/AqtobeGMT+5:00Mar lastSun 0:00Oct lastSun 0:001:00 -Asia/AshkhabadGMT+5:00 +Asia/AshgabatGMT+5:00 Asia/BaghdadGMT+3:00Apr 1 3:00sOct 1 3:00s1:00 Asia/BahrainGMT+3:00 Asia/BakuGMT+4:00Mar lastSun 1:00Oct lastSun 1:001:00 @@ -366,9 +370,9 @@ time, depending on which is in effect).

Asia/CalcuttaGMT+5:30alias IST Asia/ChungkingGMT+8:00Apr Sun>=10 0:00Sep Sun>=11 0:001:00 Asia/ColomboGMT+6:00 -Asia/DaccaGMT+6:00alias BST Asia/DamascusGMT+2:00Apr 1 0:00Oct 1 0:001:00 -Asia/DiliGMT+8:00 +Asia/DhakaGMT+6:00alias BST +Asia/DiliGMT+9:00 Asia/DubaiGMT+4:00 Asia/DushanbeGMT+5:00 Asia/GazaGMT+2:00Apr Fri>=15 0:00Oct Fri>=15 0:001:00 @@ -378,7 +382,7 @@ time, depending on which is in effect).

Asia/IrkutskGMT+8:00Mar lastSun 2:00sOct lastSun 2:00s1:00 Asia/JakartaGMT+7:00 Asia/JayapuraGMT+9:00 -Asia/JerusalemGMT+2:00Apr 1 1:00Oct 6 1:001:00 +Asia/JerusalemGMT+2:00Apr 1 1:00Sep 24 1:001:00 Asia/KabulGMT+4:30 Asia/KamchatkaGMT+12:00Mar lastSun 2:00sOct lastSun 2:00s1:00 Asia/KarachiGMT+5:00alias PLT @@ -411,8 +415,8 @@ time, depending on which is in effect).

Asia/TaipeiGMT+8:00Jun 30 0:00Sep 30 0:001:00 Asia/TashkentGMT+5:00 Asia/TbilisiGMT+4:00Mar lastSun 0:00Oct lastSun 0:001:00 -Asia/TehranGMT+3:30Mar 20 0:00Sep 22 0:001:00 -Asia/ThimbuGMT+6:00 +Asia/TehranGMT+3:30Mar 20 0:00Sep 23 0:001:00 +Asia/ThimphuGMT+6:00 Asia/TokyoGMT+9:00alias JST Asia/Ujung_PandangGMT+8:00 Asia/UlaanbaatarGMT+8:00Mar lastSun 0:00Sep lastSun 0:001:00 @@ -443,18 +447,18 @@ time, depending on which is in effect).

Australia/MelbourneGMT+10:00Oct lastSun 2:00sMar lastSun 2:00s1:00 Australia/PerthGMT+8:00 Australia/SydneyGMT+10:00Oct lastSun 2:00sMar lastSun 2:00s1:00alias AET -BETGMT-3:00Oct Sun>=1 0:00Feb lastSun 0:001:00alias for America/Sao_Paulo -BSTGMT+6:00alias for Asia/Dacca +BETGMT-3:00Oct Sun>=8 0:00Feb Sun>=15 0:001:00alias for America/Sao_Paulo +BSTGMT+6:00alias for Asia/Dhaka CATGMT+2:00alias for Africa/Harare CETGMT+1:00Mar lastSun 2:00sOct lastSun 2:00s1:00 -CNTGMT-3:30Apr Sun>=1 2:00Oct lastSun 2:001:00alias for America/St_Johns +CNTGMT-3:30Apr Sun>=1 0:01Oct lastSun 0:011:00alias for America/St_Johns CSTGMT-6:00Apr Sun>=1 2:00Oct lastSun 2:001:00alias for America/Chicago CTTGMT+8:00Apr Sun>=10 0:00Sep Sun>=11 0:001:00alias for Asia/Shanghai EATGMT+3:00alias for Africa/Addis_Ababa ECTGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00alias for Europe/Paris EETGMT+2:00Mar lastSun 1:00uOct lastSun 1:00u1:00 ESTGMT-5:00Apr Sun>=1 2:00Oct lastSun 2:001:00alias for America/New_York -Etc/GMTGMT+0:00alias UTC +Etc/GMTGMT+0:00 Etc/GMT+1GMT-1:00 Etc/GMT+10GMT-10:00 Etc/GMT+11GMT-11:00 @@ -482,13 +486,14 @@ time, depending on which is in effect).

Etc/GMT-8GMT+8:00 Etc/GMT-9GMT+9:00 Etc/UCTGMT+0:00 -Etc/UTCGMT+0:00 +Etc/UTCGMT+0:00alias UTC Europe/AmsterdamGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/AndorraGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/AthensGMT+2:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/BelfastGMT+0:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/BelgradeGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/BerlinGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 +Europe/BratislavaGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/BrusselsGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/BucharestGMT+2:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/BudapestGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 @@ -501,6 +506,7 @@ time, depending on which is in effect).

Europe/KaliningradGMT+2:00Mar lastSun 2:00sOct lastSun 2:00s1:00 Europe/KievGMT+2:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/LisbonGMT+0:00Mar lastSun 1:00uOct lastSun 1:00u1:00 +Europe/LjubljanaGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/LondonGMT+0:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/LuxembourgGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/MadridGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 @@ -514,7 +520,10 @@ time, depending on which is in effect).

Europe/RigaGMT+2:00 Europe/RomeGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/SamaraGMT+4:00Mar lastSun 2:00sOct lastSun 2:00s1:00 +Europe/San_MarinoGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 +Europe/SarajevoGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/SimferopolGMT+2:00Mar lastSun 1:00uOct lastSun 1:00u1:00 +Europe/SkopjeGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/SofiaGMT+2:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/StockholmGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/TallinnGMT+2:00 @@ -522,9 +531,11 @@ time, depending on which is in effect).

Europe/TiraspolGMT+3:00Mar lastSun 2:00sOct lastSun 2:00s1:00 Europe/UzhgorodGMT+2:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/VaduzGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 +Europe/VaticanGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/ViennaGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/VilniusGMT+2:00 Europe/WarsawGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 +Europe/ZagrebGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/ZaporozhyeGMT+2:00Mar lastSun 1:00uOct lastSun 1:00u1:00 Europe/ZurichGMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00 GMTGMT+0:00 @@ -586,13 +597,13 @@ time, depending on which is in effect).

Pacific/SaipanGMT+10:00 Pacific/TahitiGMT-10:00 Pacific/TarawaGMT+12:00 -Pacific/TongatapuGMT+13:00Oct Sat>=1 2:00sApr Sun>=16 2:00s1:00 +Pacific/TongatapuGMT+13:00Nov 4 2:00sJan 27 2:00s1:00 Pacific/TrukGMT+10:00 Pacific/WakeGMT+12:00 Pacific/WallisGMT+12:00 Pacific/YapGMT+10:00 SSTGMT+11:00alias for Pacific/Guadalcanal -UTCGMT+0:00alias for Etc/GMT +UTCGMT+0:00alias for Etc/UTC VSTGMT+7:00alias for Asia/Saigon WETGMT+0:00Mar lastSun 1:00uOct lastSun 1:00u1:00 @@ -626,32 +637,34 @@ a given zone is negligible.

GMT-7:00America/Dawson_Creek America/Hermosillo America/Phoenix Etc/GMT+7 PNT GMT-7:00Apr Sun>=1 2:00Oct lastSun 2:001:00America/Boise America/Chihuahua America/Denver America/Edmonton America/Inuvik America/Mazatlan America/Yellowknife MST GMT-6:00America/Managua America/Regina America/Swift_Current Etc/GMT+6 Pacific/Galapagos -GMT-6:00Apr Sun>=1 2:00Oct lastSun 2:001:00America/Cambridge_Bay America/Cancun America/Chicago America/Iqaluit America/Menominee America/Merida America/Mexico_City America/Monterrey America/Pangnirtung America/Rainy_River America/Rankin_Inlet America/Winnipeg CST +GMT-6:00Apr Sun>=1 2:00Oct lastSun 2:001:00America/Cambridge_Bay America/Cancun America/Chicago America/Menominee America/Merida America/Mexico_City America/Monterrey America/Rainy_River CST +GMT-6:00Apr Sun>=1 2:00Oct lastSun 2:00s1:00America/Winnipeg GMT-6:00Dec 18 0:00Feb 12 0:001:00America/Belize GMT-6:00Jan Sat>=15 0:00Mar 15 0:001:00America/Costa_Rica GMT-6:00Mar 23 0:00Sep 7 0:001:00America/Guatemala GMT-6:00May Sun>=1 0:00Sep lastSun 0:001:00America/El_Salvador America/Tegucigalpa GMT-6:00Oct Sun>=9 0:00Mar Sun>=9 0:001:00Pacific/Easter -GMT-5:00America/Cayman America/Guayaquil America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Jamaica America/Panama America/Porto_Acre Etc/GMT+5 IET +GMT-5:00America/Cayman America/Eirunepe America/Guayaquil America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Iqaluit America/Jamaica America/Panama America/Pangnirtung America/Porto_Acre America/Rankin_Inlet Etc/GMT+5 IET GMT-5:00Apr Sun>=1 0:00Oct lastSun 0:001:00America/Grand_Turk GMT-5:00Apr Sun>=1 0:00sOct lastSun 0:00s1:00America/Havana GMT-5:00Apr Sun>=1 1:00sOct lastSun 1:00s1:00America/Port-au-Prince -GMT-5:00Apr Sun>=1 2:00Oct lastSun 2:001:00America/Detroit America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Thunder_Bay EST +GMT-5:00Apr Sun>=1 2:00Oct lastSun 2:001:00America/Detroit America/Kentucky/Monticello America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Thunder_Bay EST GMT-5:00Jan 1 0:00Apr 1 0:001:00America/Lima GMT-5:00May 2 0:00Dec 31 0:001:00America/Bogota -GMT-4:00America/Anguilla America/Antigua America/Aruba America/Caracas America/Curacao America/Dominica America/Grenada America/Guadeloupe America/Guyana America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Tortola Etc/GMT+4 PRT -GMT-4:00Apr Sun>=1 2:00Oct lastSun 2:001:00America/Glace_Bay America/Goose_Bay America/Halifax America/Thule Atlantic/Bermuda +GMT-4:00America/Anguilla America/Antigua America/Aruba America/Boa_Vista America/Caracas America/Curacao America/Dominica America/Grenada America/Guadeloupe America/Guyana America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Tortola Etc/GMT+4 PRT +GMT-4:00Apr Sun>=1 0:01Oct lastSun 0:011:00America/Goose_Bay +GMT-4:00Apr Sun>=1 2:00Oct lastSun 2:001:00America/Glace_Bay America/Halifax America/Thule Atlantic/Bermuda GMT-4:00Apr Sun>=15 2:00Sep 25 2:001:00America/Barbados -GMT-4:00Oct Sun>=1 0:00Feb lastSun 0:001:00America/Boa_Vista America/Cuiaba -GMT-4:00Oct Sun>=8 0:00Feb lastSun 0:001:00America/Asuncion +GMT-4:00Oct Sun>=1 0:00Feb lastSun 0:001:00America/Asuncion +GMT-4:00Oct Sun>=8 0:00Feb Sun>=15 0:001:00America/Cuiaba GMT-4:00Oct Sun>=9 0:00Mar Sun>=9 0:001:00America/Santiago Antarctica/Palmer GMT-4:00Sep Sun>=8 0:00Apr Sun>=16 0:001:00Atlantic/Stanley -GMT-3:30Apr Sun>=1 2:00Oct lastSun 2:001:00America/St_Johns CNT -GMT-3:00AGT America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Jujuy America/Mendoza America/Paramaribo America/Rosario Etc/GMT+3 +GMT-3:30Apr Sun>=1 0:01Oct lastSun 0:011:00America/St_Johns CNT +GMT-3:00AGT America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Fortaleza America/Jujuy America/Maceio America/Mendoza America/Paramaribo America/Recife America/Rosario Etc/GMT+3 GMT-3:00Apr Sun>=1 2:00Oct lastSun 2:001:00America/Miquelon GMT-3:00Mar lastSun 1:00uOct lastSun 1:00u1:00America/Godthab GMT-3:00Oct 18 0:00Feb 28 0:001:00America/Montevideo -GMT-3:00Oct Sun>=1 0:00Feb lastSun 0:001:00America/Araguaina America/Fortaleza America/Maceio America/Sao_Paulo BET +GMT-3:00Oct Sun>=8 0:00Feb Sun>=15 0:001:00America/Araguaina America/Sao_Paulo BET GMT-2:00America/Noronha Atlantic/South_Georgia Etc/GMT+2 GMT-1:00Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 GMT-1:00Mar lastSun 1:00uOct lastSun 1:00u1:00America/Scoresbysund Atlantic/Azores @@ -660,13 +673,13 @@ a given zone is negligible.

GMT+0:00Mar lastSun 1:00uOct lastSun 1:00u1:00Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London WET GMT+0:00Sep 1 0:00Dec 31 0:000:20Africa/Accra GMT+1:00Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Etc/GMT-1 -GMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00Africa/Ceuta ECT Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vienna Europe/Warsaw Europe/Zurich +GMT+1:00Mar lastSun 1:00uOct lastSun 1:00u1:00Africa/Ceuta Arctic/Longyearbyen ECT Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Ljubljana Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/San_Marino Europe/Sarajevo Europe/Skopje Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Warsaw Europe/Zagreb Europe/Zurich GMT+1:00Mar lastSun 2:00sOct lastSun 2:00s1:00CET MET GMT+1:00May 1 0:00sSep lastSun 0:00s1:00Africa/Tunis GMT+1:00Sep Sun>=1 2:00Apr Sun>=1 2:001:00Africa/Windhoek GMT+2:00Africa/Blantyre Africa/Bujumbura Africa/Gaborone Africa/Harare Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli CAT Etc/GMT-2 Europe/Riga Europe/Tallinn Europe/Vilnius GMT+2:00Apr 1 0:00Oct 1 0:001:00Asia/Damascus -GMT+2:00Apr 1 1:00Oct 6 1:001:00Asia/Jerusalem +GMT+2:00Apr 1 1:00Sep 24 1:001:00Asia/Jerusalem GMT+2:00Apr Fri>=15 0:00Oct Fri>=15 0:001:00Asia/Gaza GMT+2:00Apr lastFri 0:00sSep lastThu 23:00s1:00ART Africa/Cairo GMT+2:00Mar lastSun 0:00Oct lastSun 0:001:00Asia/Beirut @@ -678,33 +691,33 @@ a given zone is negligible.

GMT+3:00Apr 1 3:00sOct 1 3:00s1:00Asia/Baghdad GMT+3:00Mar lastSun 2:00sOct lastSun 2:00s1:00Europe/Moscow Europe/Tiraspol GMT+3:07:04Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 -GMT+3:30Mar 20 0:00Sep 22 0:001:00Asia/Tehran +GMT+3:30Mar 20 0:00Sep 23 0:001:00Asia/Tehran GMT+4:00Asia/Dubai Asia/Muscat Etc/GMT-4 Indian/Mahe Indian/Mauritius Indian/Reunion GMT+4:00Mar lastSun 0:00Oct lastSun 0:001:00Asia/Aqtau Asia/Tbilisi GMT+4:00Mar lastSun 1:00Oct lastSun 1:001:00Asia/Baku GMT+4:00Mar lastSun 2:00sOct lastSun 2:00s1:00Asia/Yerevan Europe/Samara NET GMT+4:30Asia/Kabul -GMT+5:00Asia/Ashkhabad Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT +GMT+5:00Asia/Ashgabat Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT GMT+5:00Mar lastSun 0:00Oct lastSun 0:001:00Asia/Aqtobe GMT+5:00Mar lastSun 2:00sOct lastSun 2:00s1:00Asia/Yekaterinburg GMT+5:00Mar lastSun 2:30Oct lastSun 2:301:00Asia/Bishkek GMT+5:30Asia/Calcutta IST GMT+5:45Asia/Katmandu -GMT+6:00Antarctica/Mawson Asia/Colombo Asia/Dacca Asia/Thimbu BST Etc/GMT-6 +GMT+6:00Antarctica/Mawson Asia/Colombo Asia/Dhaka Asia/Thimphu BST Etc/GMT-6 GMT+6:00Mar lastSun 0:00Oct lastSun 0:001:00Asia/Almaty GMT+6:00Mar lastSun 2:00sOct lastSun 2:00s1:00Asia/Novosibirsk Asia/Omsk GMT+6:30Asia/Rangoon Indian/Cocos GMT+7:00Antarctica/Davis Asia/Bangkok Asia/Jakarta Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST GMT+7:00Mar lastSun 0:00Sep lastSun 0:001:00Asia/Hovd GMT+7:00Mar lastSun 2:00sOct lastSun 2:00s1:00Asia/Krasnoyarsk -GMT+8:00Antarctica/Casey Asia/Brunei Asia/Dili Asia/Kuala_Lumpur Asia/Kuching Asia/Singapore Asia/Ujung_Pandang Australia/Perth Etc/GMT-8 +GMT+8:00Antarctica/Casey Asia/Brunei Asia/Kuala_Lumpur Asia/Kuching Asia/Singapore Asia/Ujung_Pandang Australia/Perth Etc/GMT-8 GMT+8:00Apr Sun>=10 0:00Sep Sun>=11 0:001:00Asia/Chungking Asia/Harbin Asia/Kashgar Asia/Macao Asia/Shanghai Asia/Urumqi CTT GMT+8:00Jun 30 0:00Sep 30 0:001:00Asia/Taipei GMT+8:00Mar 22 0:00Sep 21 0:001:00Asia/Manila GMT+8:00Mar lastSun 0:00Sep lastSun 0:001:00Asia/Ulaanbaatar GMT+8:00Mar lastSun 2:00sOct lastSun 2:00s1:00Asia/Irkutsk GMT+8:00May Sun>=8 3:30Oct Sun>=16 3:301:00Asia/Hong_Kong -GMT+9:00Asia/Jayapura Asia/Pyongyang Asia/Tokyo Etc/GMT-9 JST Pacific/Palau +GMT+9:00Asia/Dili Asia/Jayapura Asia/Pyongyang Asia/Tokyo Etc/GMT-9 JST Pacific/Palau GMT+9:00Mar lastSun 2:00sOct lastSun 2:00s1:00Asia/Yakutsk GMT+9:00May Sun<=14 0:00Oct Sun<=14 0:001:00Asia/Seoul GMT+9:30Oct 3 2:00Mar lastSun 2:001:00ACT Australia/Darwin @@ -726,9 +739,260 @@ a given zone is negligible.

GMT+12:00Oct Sun>=1 2:00sMar Sun>=15 2:00s1:00Antarctica/McMurdo NST Pacific/Auckland GMT+12:45Oct Sun>=1 2:45sMar Sun>=15 2:45s1:00Pacific/Chatham GMT+13:00Etc/GMT-13 Pacific/Enderbury -GMT+13:00Oct Sat>=1 2:00sApr Sun>=16 2:00s1:00Pacific/Tongatapu +GMT+13:00Nov 4 2:00sJan 27 2:00s1:00Pacific/Tongatapu GMT+14:00Etc/GMT-14 Pacific/Kiritimati +
+ +

Time Zones by Country

+ +

ICU captures and exports the country data from the Olson database. +The country code is the ISO 3166 two-letter code. Some zones have no +associated country; these are listed under the entry "(None)". + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CountryZones


(None)Asia/Riyadh87, Asia/Riyadh88, Asia/Riyadh89, CET, EET, Etc/GMT, 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-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/UCT, Etc/UTC, GMT, MET, UTC, WET
AD (Andorra)Europe/Andorra
AE (United Arab Emirates)Asia/Dubai
AF (Afghanistan)Asia/Kabul
AG (Antigua & Barbuda)America/Antigua
AI (Anguilla)America/Anguilla
AL (Albania)Europe/Tirane
AM (Armenia)Asia/Yerevan, NET
AN (Netherlands Antilles)America/Curacao
AO (Angola)Africa/Luanda
AQ (Antarctica)Antarctica/Casey, Antarctica/Davis, Antarctica/DumontDUrville, Antarctica/Mawson, Antarctica/McMurdo, Antarctica/Palmer, Antarctica/Syowa
AR (Argentina)AGT, America/Buenos_Aires, America/Catamarca, America/Cordoba, America/Jujuy, America/Mendoza, America/Rosario
AS (Samoa (American))Pacific/Pago_Pago
AT (Austria)Europe/Vienna
AU (Australia)ACT, AET, Australia/Adelaide, Australia/Brisbane, Australia/Broken_Hill, Australia/Darwin, Australia/Hobart, Australia/Lindeman, Australia/Lord_Howe, Australia/Melbourne, Australia/Perth, Australia/Sydney
AW (Aruba)America/Aruba
AZ (Azerbaijan)Asia/Baku
BA (Bosnia & Herzegovina)Europe/Sarajevo
BB (Barbados)America/Barbados
BD (Bangladesh)Asia/Dhaka, BST
BE (Belgium)Europe/Brussels
BF (Burkina Faso)Africa/Ouagadougou
BG (Bulgaria)Europe/Sofia
BH (Bahrain)Asia/Bahrain
BI (Burundi)Africa/Bujumbura
BJ (Benin)Africa/Porto-Novo
BM (Bermuda)Atlantic/Bermuda
BN (Brunei)Asia/Brunei
BO (Bolivia)America/La_Paz
BR (Brazil)America/Araguaina, America/Belem, America/Boa_Vista, America/Cuiaba, America/Eirunepe, America/Fortaleza, America/Maceio, America/Manaus, America/Noronha, America/Porto_Acre, America/Porto_Velho, America/Recife, America/Sao_Paulo, BET
BS (Bahamas)America/Nassau
BT (Bhutan)Asia/Thimphu
BW (Botswana)Africa/Gaborone
BY (Belarus)Europe/Minsk
BZ (Belize)America/Belize
CA (Canada)America/Cambridge_Bay, America/Dawson, America/Dawson_Creek, America/Edmonton, America/Glace_Bay, America/Goose_Bay, America/Halifax, America/Inuvik, America/Iqaluit, America/Montreal, America/Nipigon, America/Pangnirtung, America/Rainy_River, America/Rankin_Inlet, America/Regina, America/St_Johns, America/Swift_Current, America/Thunder_Bay, America/Vancouver, America/Whitehorse, America/Winnipeg, America/Yellowknife, CNT
CC (Cocos (Keeling) Islands)Indian/Cocos
CD (Congo (Dem. Rep.))Africa/Kinshasa, Africa/Lubumbashi
CF (Central African Rep.)Africa/Bangui
CG (Congo (Rep.))Africa/Brazzaville
CH (Switzerland)Europe/Zurich
CI (Cote d'Ivoire)Africa/Abidjan
CK (Cook Islands)Pacific/Rarotonga
CL (Chile)America/Santiago, Pacific/Easter
CM (Cameroon)Africa/Douala
CN (China)Asia/Chungking, Asia/Harbin, Asia/Kashgar, Asia/Shanghai, Asia/Urumqi, CTT
CO (Colombia)America/Bogota
CR (Costa Rica)America/Costa_Rica
CU (Cuba)America/Havana
CV (Cape Verde)Atlantic/Cape_Verde
CX (Christmas Island)Indian/Christmas
CY (Cyprus)Asia/Nicosia
CZ (Czech Republic)Europe/Prague
DE (Germany)Europe/Berlin
DJ (Djibouti)Africa/Djibouti
DK (Denmark)Europe/Copenhagen
DM (Dominica)America/Dominica
DO (Dominican Republic)America/Santo_Domingo
DZ (Algeria)Africa/Algiers
EC (Ecuador)America/Guayaquil, Pacific/Galapagos
EE (Estonia)Europe/Tallinn
EG (Egypt)ART, Africa/Cairo
EH (Western Sahara)Africa/El_Aaiun
ER (Eritrea)Africa/Asmera
ES (Spain)Africa/Ceuta, Atlantic/Canary, Europe/Madrid
ET (Ethiopia)Africa/Addis_Ababa, EAT
FI (Finland)Europe/Helsinki
FJ (Fiji)Pacific/Fiji
FK (Falkland Islands)Atlantic/Stanley
FM (Micronesia)Pacific/Kosrae, Pacific/Ponape, Pacific/Truk, Pacific/Yap
FO (Faeroe Islands)Atlantic/Faeroe
FR (France)ECT, Europe/Paris
GA (Gabon)Africa/Libreville
GB (Britain (UK))Europe/Belfast, Europe/London
GD (Grenada)America/Grenada
GE (Georgia)Asia/Tbilisi
GF (French Guiana)America/Cayenne
GH (Ghana)Africa/Accra
GI (Gibraltar)Europe/Gibraltar
GL (Greenland)America/Godthab, America/Scoresbysund, America/Thule
GM (Gambia)Africa/Banjul
GN (Guinea)Africa/Conakry
GP (Guadeloupe)America/Guadeloupe
GQ (Equatorial Guinea)Africa/Malabo
GR (Greece)Europe/Athens
GS (South Georgia & the South Sandwich Islands)Atlantic/South_Georgia
GT (Guatemala)America/Guatemala
GU (Guam)Pacific/Guam
GW (Guinea-Bissau)Africa/Bissau
GY (Guyana)America/Guyana
HK (Hong Kong)Asia/Hong_Kong
HN (Honduras)America/Tegucigalpa
HR (Croatia)Europe/Zagreb
HT (Haiti)America/Port-au-Prince
HU (Hungary)Europe/Budapest
ID (Indonesia)Asia/Jakarta, Asia/Jayapura, Asia/Ujung_Pandang
IE (Ireland)Europe/Dublin
IL (Israel)Asia/Jerusalem
IN (India)Asia/Calcutta, IST
IO (British Indian Ocean Territory)Indian/Chagos
IQ (Iraq)Asia/Baghdad
IR (Iran)Asia/Tehran
IS (Iceland)Atlantic/Reykjavik
IT (Italy)Europe/Rome
JM (Jamaica)America/Jamaica
JO (Jordan)Asia/Amman
JP (Japan)Asia/Tokyo, JST
KE (Kenya)Africa/Nairobi
KG (Kyrgyzstan)Asia/Bishkek
KH (Cambodia)Asia/Phnom_Penh
KI (Kiribati)Pacific/Enderbury, Pacific/Kiritimati, Pacific/Tarawa
KM (Comoros)Indian/Comoro
KN (St Kitts & Nevis)America/St_Kitts
KP (Korea (North))Asia/Pyongyang
KR (Korea (South))Asia/Seoul
KW (Kuwait)Asia/Kuwait
KY (Cayman Islands)America/Cayman
KZ (Kazakhstan)Asia/Almaty, Asia/Aqtau, Asia/Aqtobe
LA (Laos)Asia/Vientiane
LB (Lebanon)Asia/Beirut
LC (St Lucia)America/St_Lucia
LI (Liechtenstein)Europe/Vaduz
LK (Sri Lanka)Asia/Colombo
LR (Liberia)Africa/Monrovia
LS (Lesotho)Africa/Maseru
LT (Lithuania)Europe/Vilnius
LU (Luxembourg)Europe/Luxembourg
LV (Latvia)Europe/Riga
LY (Libya)Africa/Tripoli
MA (Morocco)Africa/Casablanca
MC (Monaco)Europe/Monaco
MD (Moldova)Europe/Chisinau, Europe/Tiraspol
MG (Madagascar)Indian/Antananarivo
MH (Marshall Islands)Pacific/Kwajalein, Pacific/Majuro
MK (Macedonia)Europe/Skopje
ML (Mali)Africa/Bamako, Africa/Timbuktu
MM (Myanmar (Burma))Asia/Rangoon
MN (Mongolia)Asia/Hovd, Asia/Ulaanbaatar
MO (Macao)Asia/Macao
MP (Northern Mariana Islands)Pacific/Saipan
MQ (Martinique)America/Martinique
MR (Mauritania)Africa/Nouakchott
MS (Montserrat)America/Montserrat
MT (Malta)Europe/Malta
MU (Mauritius)Indian/Mauritius
MV (Maldives)Indian/Maldives
MW (Malawi)Africa/Blantyre
MX (Mexico)America/Cancun, America/Chihuahua, America/Hermosillo, America/Mazatlan, America/Merida, America/Mexico_City, America/Monterrey, America/Tijuana
MY (Malaysia)Asia/Kuala_Lumpur, Asia/Kuching
MZ (Mozambique)Africa/Maputo
NA (Namibia)Africa/Windhoek
NC (New Caledonia)Pacific/Noumea
NE (Niger)Africa/Niamey
NF (Norfolk Island)Pacific/Norfolk
NG (Nigeria)Africa/Lagos
NI (Nicaragua)America/Managua
NL (Netherlands)Europe/Amsterdam
NO (Norway)Europe/Oslo
NP (Nepal)Asia/Katmandu
NR (Nauru)Pacific/Nauru
NU (Niue)Pacific/Niue
NZ (New Zealand)NST, Pacific/Auckland, Pacific/Chatham
OM (Oman)Asia/Muscat
PA (Panama)America/Panama
PE (Peru)America/Lima
PF (French Polynesia)Pacific/Gambier, Pacific/Marquesas, Pacific/Tahiti
PG (Papua New Guinea)Pacific/Port_Moresby
PH (Philippines)Asia/Manila
PK (Pakistan)Asia/Karachi, PLT
PL (Poland)Europe/Warsaw
PM (St Pierre & Miquelon)America/Miquelon
PN (Pitcairn)Pacific/Pitcairn
PR (Puerto Rico)America/Puerto_Rico, PRT
PS (Palestine)Asia/Gaza
PT (Portugal)Atlantic/Azores, Atlantic/Madeira, Europe/Lisbon
PW (Palau)Pacific/Palau
PY (Paraguay)America/Asuncion
QA (Qatar)Asia/Qatar
RE (Reunion)Indian/Reunion
RO (Romania)Europe/Bucharest
RU (Russia)Asia/Anadyr, Asia/Irkutsk, Asia/Kamchatka, Asia/Krasnoyarsk, Asia/Magadan, Asia/Novosibirsk, Asia/Omsk, Asia/Vladivostok, Asia/Yakutsk, Asia/Yekaterinburg, Europe/Kaliningrad, Europe/Moscow, Europe/Samara
RW (Rwanda)Africa/Kigali
SA (Saudi Arabia)Asia/Riyadh
SB (Solomon Islands)Pacific/Guadalcanal, SST
SC (Seychelles)Indian/Mahe
SD (Sudan)Africa/Khartoum
SE (Sweden)Europe/Stockholm
SG (Singapore)Asia/Singapore
SH (St Helena)Atlantic/St_Helena
SI (Slovenia)Europe/Ljubljana
SJ (Svalbard & Jan Mayen)Arctic/Longyearbyen, Atlantic/Jan_Mayen
SK (Slovakia)Europe/Bratislava
SL (Sierra Leone)Africa/Freetown
SM (San Marino)Europe/San_Marino
SN (Senegal)Africa/Dakar
SO (Somalia)Africa/Mogadishu
SR (Suriname)America/Paramaribo
ST (Sao Tome & Principe)Africa/Sao_Tome
SV (El Salvador)America/El_Salvador
SY (Syria)Asia/Damascus
SZ (Swaziland)Africa/Mbabane
TC (Turks & Caicos Is)America/Grand_Turk
TD (Chad)Africa/Ndjamena
TF (French Southern & Antarctic Lands)Indian/Kerguelen
TG (Togo)Africa/Lome
TH (Thailand)Asia/Bangkok
TJ (Tajikistan)Asia/Dushanbe
TK (Tokelau)Pacific/Fakaofo
TM (Turkmenistan)Asia/Ashgabat
TN (Tunisia)Africa/Tunis
TO (Tonga)Pacific/Tongatapu
TP (East Timor)Asia/Dili
TR (Turkey)Europe/Istanbul
TT (Trinidad & Tobago)America/Port_of_Spain
TV (Tuvalu)Pacific/Funafuti
TW (Taiwan)Asia/Taipei
TZ (Tanzania)Africa/Dar_es_Salaam
UA (Ukraine)Europe/Kiev, Europe/Simferopol, Europe/Uzhgorod, Europe/Zaporozhye
UG (Uganda)Africa/Kampala
UM (US minor outlying islands)Pacific/Johnston, Pacific/Midway, Pacific/Wake
US (United States)AST, America/Adak, America/Anchorage, America/Boise, America/Chicago, America/Denver, America/Detroit, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Vevay, America/Indianapolis, America/Juneau, America/Kentucky/Monticello, America/Los_Angeles, America/Louisville, America/Menominee, America/New_York, America/Nome, America/Phoenix, America/Yakutat, CST, EST, HST, IET, MST, PNT, PST, Pacific/Honolulu
UY (Uruguay)America/Montevideo
UZ (Uzbekistan)Asia/Samarkand, Asia/Tashkent
VA (Vatican City)Europe/Vatican
VC (St Vincent)America/St_Vincent
VE (Venezuela)America/Caracas
VG (Virgin Islands (UK))America/Tortola
VI (Virgin Islands (US))America/St_Thomas
VN (Vietnam)Asia/Saigon, VST
VU (Vanuatu)Pacific/Efate
WF (Wallis & Futuna)Pacific/Wallis
WS (Samoa (Western))MIT, Pacific/Apia
YE (Yemen)Asia/Aden
YT (Mayotte)Indian/Mayotte
YU (Yugoslavia)Europe/Belgrade
ZA (South Africa)Africa/Johannesburg
ZM (Zambia)Africa/Lusaka
ZW (Zimbabwe)Africa/Harare, CAT
+ diff --git a/icu4c/source/data/misc/timezone.txt b/icu4c/source/data/misc/timezone.txt index faf7e91aee5..bc71106efda 100644 --- a/icu4c/source/data/misc/timezone.txt +++ b/icu4c/source/data/misc/timezone.txt @@ -1,600 +1,856 @@ -#--- Header --- Generated file, DO NOT EDIT -3 # format version number of this file -2000 # (tzdata2000f) version of Olson zone -6 # data from ftp://elsie.nci.nih.gov/pub -421 # total zone count -115 # equivalency groups count -41 # max zones with same gmtOffset -24 # max zones in an equivalency group -6089 # length of name table in bytes +#--- Header --- Generated by tz.pl +4 # format version number of this file +2000 # (tzdata2000h) version of Olson zone +8 # data from ftp://elsie.nci.nih.gov/pub +432 # total zone count +117 # equivalency groups count +49 # max zones with same gmtOffset +32 # max zones in an equivalency group +6281 # length of name table in bytes end #--- Zone table --- #| equiv_index,name -421 # count of zones to follow -94,ACT -98,AET -34,AGT -55,ART +432 # count of zones to follow +96,ACT +100,AET +36,AGT +57,ART 7,AST -42,Africa/Abidjan -45,Africa/Accra -61,Africa/Addis_Ababa -46,Africa/Algiers -61,Africa/Asmera -42,Africa/Bamako -46,Africa/Bangui -42,Africa/Banjul -42,Africa/Bissau -51,Africa/Blantyre -46,Africa/Brazzaville -51,Africa/Bujumbura -55,Africa/Cairo -42,Africa/Casablanca -47,Africa/Ceuta -42,Africa/Conakry -42,Africa/Dakar -61,Africa/Dar_es_Salaam -61,Africa/Djibouti -46,Africa/Douala -42,Africa/El_Aaiun -43,Africa/Freetown -51,Africa/Gaborone -51,Africa/Harare -60,Africa/Johannesburg -61,Africa/Kampala -61,Africa/Khartoum -51,Africa/Kigali -46,Africa/Kinshasa -46,Africa/Lagos -46,Africa/Libreville -42,Africa/Lome -46,Africa/Luanda -51,Africa/Lubumbashi -51,Africa/Lusaka -46,Africa/Malabo -51,Africa/Maputo -51,Africa/Maseru -51,Africa/Mbabane -61,Africa/Mogadishu -42,Africa/Monrovia -61,Africa/Nairobi -46,Africa/Ndjamena -46,Africa/Niamey -42,Africa/Nouakchott -42,Africa/Ouagadougou -46,Africa/Porto-Novo -42,Africa/Sao_Tome -42,Africa/Timbuktu -51,Africa/Tripoli -49,Africa/Tunis -50,Africa/Windhoek +44,Africa/Abidjan +47,Africa/Accra +63,Africa/Addis_Ababa +48,Africa/Algiers +63,Africa/Asmera +44,Africa/Bamako +48,Africa/Bangui +44,Africa/Banjul +44,Africa/Bissau +53,Africa/Blantyre +48,Africa/Brazzaville +53,Africa/Bujumbura +57,Africa/Cairo +44,Africa/Casablanca +49,Africa/Ceuta +44,Africa/Conakry +44,Africa/Dakar +63,Africa/Dar_es_Salaam +63,Africa/Djibouti +48,Africa/Douala +44,Africa/El_Aaiun +45,Africa/Freetown +53,Africa/Gaborone +53,Africa/Harare +62,Africa/Johannesburg +63,Africa/Kampala +63,Africa/Khartoum +53,Africa/Kigali +48,Africa/Kinshasa +48,Africa/Lagos +48,Africa/Libreville +44,Africa/Lome +48,Africa/Luanda +53,Africa/Lubumbashi +53,Africa/Lusaka +48,Africa/Malabo +53,Africa/Maputo +53,Africa/Maseru +53,Africa/Mbabane +63,Africa/Mogadishu +44,Africa/Monrovia +63,Africa/Nairobi +48,Africa/Ndjamena +48,Africa/Niamey +44,Africa/Nouakchott +44,Africa/Ouagadougou +48,Africa/Porto-Novo +44,Africa/Sao_Tome +44,Africa/Timbuktu +53,Africa/Tripoli +51,Africa/Tunis +52,Africa/Windhoek 3,America/Adak 7,America/Anchorage -26,America/Anguilla -26,America/Antigua -38,America/Araguaina -26,America/Aruba -30,America/Asuncion -28,America/Barbados -34,America/Belem -14,America/Belize -29,America/Boa_Vista -25,America/Bogota +27,America/Anguilla +27,America/Antigua +40,America/Araguaina +27,America/Aruba +31,America/Asuncion +30,America/Barbados +36,America/Belem +15,America/Belize +27,America/Boa_Vista +26,America/Bogota 11,America/Boise -34,America/Buenos_Aires +36,America/Buenos_Aires 13,America/Cambridge_Bay 13,America/Cancun -26,America/Caracas -34,America/Catamarca -34,America/Cayenne -19,America/Cayman +27,America/Caracas +36,America/Catamarca +36,America/Cayenne +20,America/Cayman 13,America/Chicago 11,America/Chihuahua -34,America/Cordoba -15,America/Costa_Rica -29,America/Cuiaba -26,America/Curacao +36,America/Cordoba +16,America/Costa_Rica +32,America/Cuiaba +27,America/Curacao 9,America/Dawson 10,America/Dawson_Creek 11,America/Denver -23,America/Detroit -26,America/Dominica +24,America/Detroit +27,America/Dominica 11,America/Edmonton -17,America/El_Salvador -38,America/Fortaleza -27,America/Glace_Bay -36,America/Godthab -27,America/Goose_Bay -20,America/Grand_Turk -26,America/Grenada -26,America/Guadeloupe -16,America/Guatemala -19,America/Guayaquil -26,America/Guyana -27,America/Halifax -21,America/Havana +20,America/Eirunepe +18,America/El_Salvador +36,America/Fortaleza +29,America/Glace_Bay +38,America/Godthab +28,America/Goose_Bay +21,America/Grand_Turk +27,America/Grenada +27,America/Guadeloupe +17,America/Guatemala +20,America/Guayaquil +27,America/Guyana +29,America/Halifax +22,America/Havana 10,America/Hermosillo -19,America/Indiana/Knox -19,America/Indiana/Marengo -19,America/Indiana/Vevay -19,America/Indianapolis +20,America/Indiana/Knox +20,America/Indiana/Marengo +20,America/Indiana/Vevay +20,America/Indianapolis 11,America/Inuvik -13,America/Iqaluit -19,America/Jamaica -34,America/Jujuy +20,America/Iqaluit +20,America/Jamaica +36,America/Jujuy 7,America/Juneau -26,America/La_Paz -24,America/Lima +24,America/Kentucky/Monticello +27,America/La_Paz +25,America/Lima 9,America/Los_Angeles -23,America/Louisville -38,America/Maceio +24,America/Louisville +36,America/Maceio 12,America/Managua -26,America/Manaus -26,America/Martinique +27,America/Manaus +27,America/Martinique 11,America/Mazatlan -34,America/Mendoza +36,America/Mendoza 13,America/Menominee 13,America/Merida 13,America/Mexico_City -35,America/Miquelon +37,America/Miquelon 13,America/Monterrey -37,America/Montevideo -23,America/Montreal -26,America/Montserrat -23,America/Nassau -23,America/New_York -23,America/Nipigon +39,America/Montevideo +24,America/Montreal +27,America/Montserrat +24,America/Nassau +24,America/New_York +24,America/Nipigon 7,America/Nome -39,America/Noronha -19,America/Panama -13,America/Pangnirtung -34,America/Paramaribo +41,America/Noronha +20,America/Panama +20,America/Pangnirtung +36,America/Paramaribo 10,America/Phoenix -22,America/Port-au-Prince -26,America/Port_of_Spain -19,America/Porto_Acre -26,America/Porto_Velho -26,America/Puerto_Rico +23,America/Port-au-Prince +27,America/Port_of_Spain +20,America/Porto_Acre +27,America/Porto_Velho +27,America/Puerto_Rico 13,America/Rainy_River -13,America/Rankin_Inlet +20,America/Rankin_Inlet +36,America/Recife 12,America/Regina -34,America/Rosario -31,America/Santiago -26,America/Santo_Domingo -38,America/Sao_Paulo -41,America/Scoresbysund -33,America/St_Johns -26,America/St_Kitts -26,America/St_Lucia -26,America/St_Thomas -26,America/St_Vincent +36,America/Rosario +33,America/Santiago +27,America/Santo_Domingo +40,America/Sao_Paulo +43,America/Scoresbysund +35,America/St_Johns +27,America/St_Kitts +27,America/St_Lucia +27,America/St_Thomas +27,America/St_Vincent 12,America/Swift_Current -17,America/Tegucigalpa -27,America/Thule -23,America/Thunder_Bay +18,America/Tegucigalpa +29,America/Thule +24,America/Thunder_Bay 9,America/Tijuana -26,America/Tortola +27,America/Tortola 9,America/Vancouver 9,America/Whitehorse -13,America/Winnipeg +14,America/Winnipeg 7,America/Yakutat 11,America/Yellowknife -84,Antarctica/Casey -81,Antarctica/Davis -96,Antarctica/DumontDUrville -77,Antarctica/Mawson -110,Antarctica/McMurdo -31,Antarctica/Palmer -61,Antarctica/Syowa -61,Asia/Aden -78,Asia/Almaty -59,Asia/Amman -108,Asia/Anadyr -67,Asia/Aqtau -72,Asia/Aqtobe -71,Asia/Ashkhabad -62,Asia/Baghdad -61,Asia/Bahrain -68,Asia/Baku -81,Asia/Bangkok -56,Asia/Beirut -74,Asia/Bishkek -84,Asia/Brunei -75,Asia/Calcutta -85,Asia/Chungking -77,Asia/Colombo -77,Asia/Dacca -52,Asia/Damascus -84,Asia/Dili -66,Asia/Dubai -71,Asia/Dushanbe -54,Asia/Gaza -85,Asia/Harbin -90,Asia/Hong_Kong -82,Asia/Hovd -89,Asia/Irkutsk -81,Asia/Jakarta -91,Asia/Jayapura -53,Asia/Jerusalem -70,Asia/Kabul -108,Asia/Kamchatka -71,Asia/Karachi -85,Asia/Kashgar -76,Asia/Katmandu -83,Asia/Krasnoyarsk -84,Asia/Kuala_Lumpur -84,Asia/Kuching -61,Asia/Kuwait -85,Asia/Macao -104,Asia/Magadan -87,Asia/Manila -66,Asia/Muscat -57,Asia/Nicosia -79,Asia/Novosibirsk -79,Asia/Omsk -81,Asia/Phnom_Penh -91,Asia/Pyongyang -61,Asia/Qatar -80,Asia/Rangoon -61,Asia/Riyadh -64,Asia/Riyadh87 -64,Asia/Riyadh88 -64,Asia/Riyadh89 -81,Asia/Saigon -71,Asia/Samarkand -93,Asia/Seoul -85,Asia/Shanghai -84,Asia/Singapore -86,Asia/Taipei -71,Asia/Tashkent -67,Asia/Tbilisi -65,Asia/Tehran -77,Asia/Thimbu -91,Asia/Tokyo -84,Asia/Ujung_Pandang -88,Asia/Ulaanbaatar -85,Asia/Urumqi -81,Asia/Vientiane -97,Asia/Vladivostok -92,Asia/Yakutsk -73,Asia/Yekaterinburg -69,Asia/Yerevan -41,Atlantic/Azores -27,Atlantic/Bermuda -44,Atlantic/Canary -40,Atlantic/Cape_Verde -44,Atlantic/Faeroe -40,Atlantic/Jan_Mayen -44,Atlantic/Madeira -42,Atlantic/Reykjavik -39,Atlantic/South_Georgia -42,Atlantic/St_Helena -32,Atlantic/Stanley -95,Australia/Adelaide -99,Australia/Brisbane -95,Australia/Broken_Hill -94,Australia/Darwin -100,Australia/Hobart -99,Australia/Lindeman -101,Australia/Lord_Howe -98,Australia/Melbourne -84,Australia/Perth -98,Australia/Sydney -38,BET -77,BST -51,CAT -48,CET -33,CNT +86,Antarctica/Casey +83,Antarctica/Davis +98,Antarctica/DumontDUrville +79,Antarctica/Mawson +112,Antarctica/McMurdo +33,Antarctica/Palmer +63,Antarctica/Syowa +49,Arctic/Longyearbyen +63,Asia/Aden +80,Asia/Almaty +61,Asia/Amman +110,Asia/Anadyr +69,Asia/Aqtau +74,Asia/Aqtobe +73,Asia/Ashgabat +64,Asia/Baghdad +63,Asia/Bahrain +70,Asia/Baku +83,Asia/Bangkok +58,Asia/Beirut +76,Asia/Bishkek +86,Asia/Brunei +77,Asia/Calcutta +87,Asia/Chungking +79,Asia/Colombo +54,Asia/Damascus +79,Asia/Dhaka +93,Asia/Dili +68,Asia/Dubai +73,Asia/Dushanbe +56,Asia/Gaza +87,Asia/Harbin +92,Asia/Hong_Kong +84,Asia/Hovd +91,Asia/Irkutsk +83,Asia/Jakarta +93,Asia/Jayapura +55,Asia/Jerusalem +72,Asia/Kabul +110,Asia/Kamchatka +73,Asia/Karachi +87,Asia/Kashgar +78,Asia/Katmandu +85,Asia/Krasnoyarsk +86,Asia/Kuala_Lumpur +86,Asia/Kuching +63,Asia/Kuwait +87,Asia/Macao +106,Asia/Magadan +89,Asia/Manila +68,Asia/Muscat +59,Asia/Nicosia +81,Asia/Novosibirsk +81,Asia/Omsk +83,Asia/Phnom_Penh +93,Asia/Pyongyang +63,Asia/Qatar +82,Asia/Rangoon +63,Asia/Riyadh +66,Asia/Riyadh87 +66,Asia/Riyadh88 +66,Asia/Riyadh89 +83,Asia/Saigon +73,Asia/Samarkand +95,Asia/Seoul +87,Asia/Shanghai +86,Asia/Singapore +88,Asia/Taipei +73,Asia/Tashkent +69,Asia/Tbilisi +67,Asia/Tehran +79,Asia/Thimphu +93,Asia/Tokyo +86,Asia/Ujung_Pandang +90,Asia/Ulaanbaatar +87,Asia/Urumqi +83,Asia/Vientiane +99,Asia/Vladivostok +94,Asia/Yakutsk +75,Asia/Yekaterinburg +71,Asia/Yerevan +43,Atlantic/Azores +29,Atlantic/Bermuda +46,Atlantic/Canary +42,Atlantic/Cape_Verde +46,Atlantic/Faeroe +42,Atlantic/Jan_Mayen +46,Atlantic/Madeira +44,Atlantic/Reykjavik +41,Atlantic/South_Georgia +44,Atlantic/St_Helena +34,Atlantic/Stanley +97,Australia/Adelaide +101,Australia/Brisbane +97,Australia/Broken_Hill +96,Australia/Darwin +102,Australia/Hobart +101,Australia/Lindeman +103,Australia/Lord_Howe +100,Australia/Melbourne +86,Australia/Perth +100,Australia/Sydney +40,BET +79,BST +53,CAT +50,CET +35,CNT 13,CST -85,CTT -61,EAT -47,ECT -57,EET -23,EST -42,Etc/GMT -40,Etc/GMT+1 +87,CTT +63,EAT +49,ECT +59,EET +24,EST +44,Etc/GMT +42,Etc/GMT+1 2,Etc/GMT+10 1,Etc/GMT+11 0,Etc/GMT+12 -39,Etc/GMT+2 -34,Etc/GMT+3 -26,Etc/GMT+4 -19,Etc/GMT+5 +41,Etc/GMT+2 +36,Etc/GMT+3 +27,Etc/GMT+4 +20,Etc/GMT+5 12,Etc/GMT+6 10,Etc/GMT+7 8,Etc/GMT+8 6,Etc/GMT+9 -46,Etc/GMT-1 -96,Etc/GMT-10 -102,Etc/GMT-11 -107,Etc/GMT-12 -112,Etc/GMT-13 -114,Etc/GMT-14 -51,Etc/GMT-2 -61,Etc/GMT-3 -66,Etc/GMT-4 -71,Etc/GMT-5 -77,Etc/GMT-6 -81,Etc/GMT-7 -84,Etc/GMT-8 -91,Etc/GMT-9 -42,Etc/UCT -42,Etc/UTC -47,Europe/Amsterdam -47,Europe/Andorra -57,Europe/Athens -44,Europe/Belfast -47,Europe/Belgrade -47,Europe/Berlin -47,Europe/Brussels -57,Europe/Bucharest -47,Europe/Budapest -57,Europe/Chisinau -47,Europe/Copenhagen -44,Europe/Dublin -47,Europe/Gibraltar -57,Europe/Helsinki -57,Europe/Istanbul -58,Europe/Kaliningrad -57,Europe/Kiev -44,Europe/Lisbon -44,Europe/London -47,Europe/Luxembourg -47,Europe/Madrid -47,Europe/Malta -58,Europe/Minsk -47,Europe/Monaco -63,Europe/Moscow -47,Europe/Oslo -47,Europe/Paris -47,Europe/Prague -51,Europe/Riga -47,Europe/Rome -69,Europe/Samara -57,Europe/Simferopol -57,Europe/Sofia -47,Europe/Stockholm -51,Europe/Tallinn -47,Europe/Tirane -63,Europe/Tiraspol -57,Europe/Uzhgorod -47,Europe/Vaduz -47,Europe/Vienna -51,Europe/Vilnius -47,Europe/Warsaw -57,Europe/Zaporozhye -47,Europe/Zurich -42,GMT +48,Etc/GMT-1 +98,Etc/GMT-10 +104,Etc/GMT-11 +109,Etc/GMT-12 +114,Etc/GMT-13 +116,Etc/GMT-14 +53,Etc/GMT-2 +63,Etc/GMT-3 +68,Etc/GMT-4 +73,Etc/GMT-5 +79,Etc/GMT-6 +83,Etc/GMT-7 +86,Etc/GMT-8 +93,Etc/GMT-9 +44,Etc/UCT +44,Etc/UTC +49,Europe/Amsterdam +49,Europe/Andorra +59,Europe/Athens +46,Europe/Belfast +49,Europe/Belgrade +49,Europe/Berlin +49,Europe/Bratislava +49,Europe/Brussels +59,Europe/Bucharest +49,Europe/Budapest +59,Europe/Chisinau +49,Europe/Copenhagen +46,Europe/Dublin +49,Europe/Gibraltar +59,Europe/Helsinki +59,Europe/Istanbul +60,Europe/Kaliningrad +59,Europe/Kiev +46,Europe/Lisbon +49,Europe/Ljubljana +46,Europe/London +49,Europe/Luxembourg +49,Europe/Madrid +49,Europe/Malta +60,Europe/Minsk +49,Europe/Monaco +65,Europe/Moscow +49,Europe/Oslo +49,Europe/Paris +49,Europe/Prague +53,Europe/Riga +49,Europe/Rome +71,Europe/Samara +49,Europe/San_Marino +49,Europe/Sarajevo +59,Europe/Simferopol +49,Europe/Skopje +59,Europe/Sofia +49,Europe/Stockholm +53,Europe/Tallinn +49,Europe/Tirane +65,Europe/Tiraspol +59,Europe/Uzhgorod +49,Europe/Vaduz +49,Europe/Vatican +49,Europe/Vienna +53,Europe/Vilnius +49,Europe/Warsaw +49,Europe/Zagreb +59,Europe/Zaporozhye +49,Europe/Zurich +44,GMT 2,HST -19,IET -75,IST -61,Indian/Antananarivo -71,Indian/Chagos -81,Indian/Christmas -80,Indian/Cocos -61,Indian/Comoro -71,Indian/Kerguelen -66,Indian/Mahe -71,Indian/Maldives -66,Indian/Mauritius -61,Indian/Mayotte -66,Indian/Reunion -91,JST -48,MET +20,IET +77,IST +63,Indian/Antananarivo +73,Indian/Chagos +83,Indian/Christmas +82,Indian/Cocos +63,Indian/Comoro +73,Indian/Kerguelen +68,Indian/Mahe +73,Indian/Maldives +68,Indian/Mauritius +63,Indian/Mayotte +68,Indian/Reunion +93,JST +50,MET 1,MIT 11,MST -69,NET -110,NST -71,PLT +71,NET +112,NST +73,PLT 10,PNT -26,PRT +27,PRT 9,PST 1,Pacific/Apia -110,Pacific/Auckland -111,Pacific/Chatham -18,Pacific/Easter -105,Pacific/Efate -112,Pacific/Enderbury +112,Pacific/Auckland +113,Pacific/Chatham +19,Pacific/Easter +107,Pacific/Efate +114,Pacific/Enderbury 2,Pacific/Fakaofo -109,Pacific/Fiji -107,Pacific/Funafuti +111,Pacific/Fiji +109,Pacific/Funafuti 12,Pacific/Galapagos 6,Pacific/Gambier -102,Pacific/Guadalcanal -96,Pacific/Guam +104,Pacific/Guadalcanal +98,Pacific/Guam 2,Pacific/Honolulu 2,Pacific/Johnston -114,Pacific/Kiritimati -102,Pacific/Kosrae -107,Pacific/Kwajalein -107,Pacific/Majuro +116,Pacific/Kiritimati +104,Pacific/Kosrae +109,Pacific/Kwajalein +109,Pacific/Majuro 5,Pacific/Marquesas 1,Pacific/Midway -107,Pacific/Nauru +109,Pacific/Nauru 1,Pacific/Niue -106,Pacific/Norfolk -103,Pacific/Noumea +108,Pacific/Norfolk +105,Pacific/Noumea 1,Pacific/Pago_Pago -91,Pacific/Palau +93,Pacific/Palau 8,Pacific/Pitcairn -102,Pacific/Ponape -96,Pacific/Port_Moresby +104,Pacific/Ponape +98,Pacific/Port_Moresby 4,Pacific/Rarotonga -96,Pacific/Saipan +98,Pacific/Saipan 2,Pacific/Tahiti -107,Pacific/Tarawa -113,Pacific/Tongatapu -96,Pacific/Truk -107,Pacific/Wake -107,Pacific/Wallis -96,Pacific/Yap -102,SST -42,UTC -81,VST -44,WET +109,Pacific/Tarawa +115,Pacific/Tongatapu +98,Pacific/Truk +109,Pacific/Wake +109,Pacific/Wallis +98,Pacific/Yap +104,SST +44,UTC +83,VST +46,WET end #--- Equivalency table --- #| ('s'|'d'),zone_spec,id_count,id_list -115 # count of equivalency groups to follow -s,-43200,1,284 # 0 GMT-12 [ Etc/GMT+12 ] -s,-39600,6,283,370,378,398,400,403 # 1 GMT-11 [ Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago ] -s,-36000,6,282,354,384,391,392,410 # 2 GMT-10 [ Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Tahiti ] +117 # count of equivalency groups to follow +s,-43200,1,288 # 0 GMT-12 [ Etc/GMT+12 ] +s,-39600,6,287,381,389,409,411,414 # 1 GMT-11 [ Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago ] +s,-36000,6,286,365,395,402,403,421 # 2 GMT-10 [ Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Tahiti ] d,-36000,3,1,-1,120,w,9,-1,1,120,w,60,1,57 # 3 GMT-10:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Adak ] -d,-36000,9,-1,1,0,w,2,1,-1,0,w,30,1,408 # 4 GMT-10:00 Oct lastSun 0:00 Mar Sun>=1 0:00 0:30 [ Pacific/Rarotonga ] -s,-34200,1,397 # 5 GMT-9:30 [ Pacific/Marquesas ] -s,-32400,2,292,388 # 6 GMT-9 [ Etc/GMT+9 Pacific/Gambier ] -d,-32400,3,1,-1,120,w,9,-1,1,120,w,60,5,4,58,111,133,166 # 7 GMT-9:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ AST America/Anchorage America/Juneau America/Nome America/Yakutat ] -s,-28800,2,291,405 # 8 GMT-8 [ Etc/GMT+8 Pacific/Pitcairn ] -d,-28800,3,1,-1,120,w,9,-1,1,120,w,60,6,83,114,161,163,164,377 # 9 GMT-8:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Dawson America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse PST ] -s,-25200,5,84,102,138,290,375 # 10 GMT-7:00 [ America/Dawson_Creek America/Hermosillo America/Phoenix Etc/GMT+7 PNT ] -d,-25200,3,1,-1,120,w,9,-1,1,120,w,60,8,69,78,85,88,107,120,167,371 # 11 GMT-7:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Boise America/Chihuahua America/Denver America/Edmonton America/Inuvik America/Mazatlan America/Yellowknife MST ] -s,-21600,5,117,146,157,289,387 # 12 GMT-6:00 [ America/Managua America/Regina America/Swift_Current Etc/GMT+6 Pacific/Galapagos ] -d,-21600,3,1,-1,120,w,9,-1,1,120,w,60,13,71,72,77,108,122,123,124,126,136,144,145,165,274 # 13 GMT-6:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Cambridge_Bay America/Cancun America/Chicago America/Iqaluit America/Menominee America/Merida America/Mexico_City America/Monterrey America/Pangnirtung America/Rainy_River America/Rankin_Inlet America/Winnipeg CST ] -d,-21600,11,18,0,0,w,1,12,0,0,w,60,1,66 # 14 GMT-6:00 Dec 18 0:00 Feb 12 0:00 1:00 [ America/Belize ] -d,-21600,0,15,-7,0,w,2,15,0,0,w,60,1,80 # 15 GMT-6:00 Jan Sat>=15 0:00 Mar 15 0:00 1:00 [ America/Costa_Rica ] -d,-21600,2,23,0,0,w,8,7,0,0,w,60,1,97 # 16 GMT-6:00 Mar 23 0:00 Sep 7 0:00 1:00 [ America/Guatemala ] -d,-21600,4,1,-1,0,w,8,-1,1,0,w,60,2,89,158 # 17 GMT-6:00 May Sun>=1 0:00 Sep lastSun 0:00 1:00 [ America/El_Salvador America/Tegucigalpa ] -d,-21600,9,9,-1,0,w,2,9,-1,0,w,60,1,381 # 18 GMT-6:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ Pacific/Easter ] -s,-18000,11,76,98,103,104,105,106,109,135,141,288,355 # 19 GMT-5:00 [ America/Cayman America/Guayaquil America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Jamaica America/Panama America/Porto_Acre Etc/GMT+5 IET ] -d,-18000,3,1,-1,0,w,9,-1,1,0,w,60,1,94 # 20 GMT-5:00 Apr Sun>=1 0:00 Oct lastSun 0:00 1:00 [ America/Grand_Turk ] -d,-18000,3,1,-1,0,s,9,-1,1,0,s,60,1,101 # 21 GMT-5:00 Apr Sun>=1 0:00s Oct lastSun 0:00s 1:00 [ America/Havana ] -d,-18000,3,1,-1,60,s,9,-1,1,60,s,60,1,139 # 22 GMT-5:00 Apr Sun>=1 1:00s Oct lastSun 1:00s 1:00 [ America/Port-au-Prince ] -d,-18000,3,1,-1,120,w,9,-1,1,120,w,60,8,86,115,128,130,131,132,160,279 # 23 GMT-5:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Detroit America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Thunder_Bay EST ] -d,-18000,0,1,0,0,w,3,1,0,0,w,60,1,113 # 24 GMT-5:00 Jan 1 0:00 Apr 1 0:00 1:00 [ America/Lima ] -d,-18000,4,2,0,0,w,11,31,0,0,w,60,1,68 # 25 GMT-5:00 May 2 0:00 Dec 31 0:00 1:00 [ America/Bogota ] -s,-14400,24,59,60,62,73,82,87,95,96,99,112,118,119,129,140,142,143,149,153,154,155,156,162,287,376 # 26 GMT-4:00 [ America/Anguilla America/Antigua America/Aruba America/Caracas America/Curacao America/Dominica America/Grenada America/Guadeloupe America/Guyana America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Tortola Etc/GMT+4 PRT ] -d,-14400,3,1,-1,120,w,9,-1,1,120,w,60,5,91,93,100,159,249 # 27 GMT-4:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Glace_Bay America/Goose_Bay America/Halifax America/Thule Atlantic/Bermuda ] -d,-14400,3,15,-1,120,w,8,25,0,120,w,60,1,64 # 28 GMT-4:00 Apr Sun>=15 2:00 Sep 25 2:00 1:00 [ America/Barbados ] -d,-14400,9,1,-1,0,w,1,-1,1,0,w,60,2,67,81 # 29 GMT-4:00 Oct Sun>=1 0:00 Feb lastSun 0:00 1:00 [ America/Boa_Vista America/Cuiaba ] -d,-14400,9,8,-1,0,w,1,-1,1,0,w,60,1,63 # 30 GMT-4:00 Oct Sun>=8 0:00 Feb lastSun 0:00 1:00 [ America/Asuncion ] -d,-14400,9,9,-1,0,w,2,9,-1,0,w,60,2,148,173 # 31 GMT-4:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ America/Santiago Antarctica/Palmer ] -d,-14400,8,8,-1,0,w,3,16,-1,0,w,60,1,258 # 32 GMT-4:00 Sep Sun>=8 0:00 Apr Sun>=16 0:00 1:00 [ Atlantic/Stanley ] -d,-12600,3,1,-1,120,w,9,-1,1,120,w,60,2,152,273 # 33 GMT-3:30 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/St_Johns CNT ] -s,-10800,11,2,65,70,74,75,79,110,121,137,147,286 # 34 GMT-3:00 [ AGT America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Jujuy America/Mendoza America/Paramaribo America/Rosario Etc/GMT+3 ] -d,-10800,3,1,-1,120,w,9,-1,1,120,w,60,1,125 # 35 GMT-3:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Miquelon ] -d,-10800,2,-1,1,60,u,9,-1,1,60,u,60,1,92 # 36 GMT-3:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Godthab ] -d,-10800,9,18,0,0,w,1,28,0,0,w,60,1,127 # 37 GMT-3:00 Oct 18 0:00 Feb 28 0:00 1:00 [ America/Montevideo ] -d,-10800,9,1,-1,0,w,1,-1,1,0,w,60,5,61,90,116,150,269 # 38 GMT-3:00 Oct Sun>=1 0:00 Feb lastSun 0:00 1:00 [ America/Araguaina America/Fortaleza America/Maceio America/Sao_Paulo BET ] -s,-7200,3,134,256,285 # 39 GMT-2:00 [ America/Noronha Atlantic/South_Georgia Etc/GMT+2 ] -s,-3600,3,251,253,281 # 40 GMT-1:00 [ Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 ] -d,-3600,2,-1,1,60,u,9,-1,1,60,u,60,2,151,248 # 41 GMT-1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Scoresbysund Atlantic/Azores ] -s,0,21,5,10,12,13,18,20,21,25,36,45,49,50,52,53,255,257,280,307,308,353,418 # 42 GMT+0:00 [ Africa/Abidjan Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/UCT Etc/UTC GMT UTC ] -d,0,5,1,0,0,w,8,1,0,0,w,60,1,26 # 43 GMT+0:00 Jun 1 0:00 Sep 1 0:00 1:00 [ Africa/Freetown ] -d,0,2,-1,1,60,u,9,-1,1,60,u,60,8,250,252,254,312,320,326,327,420 # 44 GMT+0:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London WET ] -d,0,8,1,0,0,w,11,31,0,0,w,20,1,6 # 45 GMT+0:00 Sep 1 0:00 Dec 31 0:00 0:20 [ Africa/Accra ] -s,3600,13,8,11,15,24,33,34,35,37,40,47,48,51,293 # 46 GMT+1:00 [ Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Etc/GMT-1 ] -d,3600,2,-1,1,60,u,9,-1,1,60,u,60,24,19,277,309,310,313,314,315,317,319,321,328,329,330,332,334,335,336,338,342,344,347,348,350,352 # 47 GMT+1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Africa/Ceuta ECT Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vienna Europe/Warsaw Europe/Zurich ] -d,3600,2,-1,1,120,s,9,-1,1,120,s,60,2,272,369 # 48 GMT+1:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ CET MET ] -d,3600,4,1,0,0,s,8,-1,1,0,s,60,1,55 # 49 GMT+1:00 May 1 0:00s Sep lastSun 0:00s 1:00 [ Africa/Tunis ] -d,3600,8,1,-1,120,w,3,1,-1,120,w,60,1,56 # 50 GMT+1:00 Sep Sun>=1 2:00 Apr Sun>=1 2:00 1:00 [ Africa/Windhoek ] -s,7200,16,14,16,27,28,32,38,39,41,42,43,54,271,299,337,343,349 # 51 GMT+2:00 [ Africa/Blantyre Africa/Bujumbura Africa/Gaborone Africa/Harare Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli CAT Etc/GMT-2 Europe/Riga Europe/Tallinn Europe/Vilnius ] -d,7200,3,1,0,0,w,9,1,0,0,w,60,1,193 # 52 GMT+2:00 Apr 1 0:00 Oct 1 0:00 1:00 [ Asia/Damascus ] -d,7200,3,1,0,60,w,9,6,0,60,w,60,1,204 # 53 GMT+2:00 Apr 1 1:00 Oct 6 1:00 1:00 [ Asia/Jerusalem ] -d,7200,3,15,-6,0,w,9,15,-6,0,w,60,1,197 # 54 GMT+2:00 Apr Fri>=15 0:00 Oct Fri>=15 0:00 1:00 [ Asia/Gaza ] -d,7200,3,-1,6,0,s,8,-1,5,1380,s,60,2,3,17 # 55 GMT+2:00 Apr lastFri 0:00s Sep lastThu 23:00s 1:00 [ ART Africa/Cairo ] -d,7200,2,-1,1,0,w,9,-1,1,0,w,60,1,186 # 56 GMT+2:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Beirut ] -d,7200,2,-1,1,60,u,9,-1,1,60,u,60,12,218,278,311,316,318,322,323,325,340,341,346,351 # 57 GMT+2:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Asia/Nicosia EET Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kiev Europe/Simferopol Europe/Sofia Europe/Uzhgorod Europe/Zaporozhye ] -d,7200,2,-1,1,120,s,9,-1,1,120,s,60,2,324,331 # 58 GMT+2:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Kaliningrad Europe/Minsk ] -d,7200,2,-1,5,0,s,8,-1,5,0,s,60,1,177 # 59 GMT+2:00 Mar lastThu 0:00s Sep lastThu 0:00s 1:00 [ Asia/Amman ] -d,7200,8,15,-1,120,w,2,15,-1,120,w,60,1,29 # 60 GMT+2:00 Sep Sun>=15 2:00 Mar Sun>=15 2:00 1:00 [ Africa/Johannesburg ] -s,10800,19,7,9,22,23,30,31,44,46,174,175,183,213,223,225,276,300,357,361,366 # 61 GMT+3:00 [ Africa/Addis_Ababa Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Indian/Antananarivo Indian/Comoro Indian/Mayotte ] -d,10800,3,1,0,180,s,9,1,0,180,s,60,1,182 # 62 GMT+3:00 Apr 1 3:00s Oct 1 3:00s 1:00 [ Asia/Baghdad ] -d,10800,2,-1,1,120,s,9,-1,1,120,s,60,2,333,345 # 63 GMT+3:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Moscow Europe/Tiraspol ] -s,11224,3,226,227,228 # 64 GMT+3:07:04 [ Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 ] -d,12600,2,20,0,0,w,8,22,0,0,w,60,1,237 # 65 GMT+3:30 Mar 20 0:00 Sep 22 0:00 1:00 [ Asia/Tehran ] -s,14400,6,195,217,301,363,365,367 # 66 GMT+4:00 [ Asia/Dubai Asia/Muscat Etc/GMT-4 Indian/Mahe Indian/Mauritius Indian/Reunion ] -d,14400,2,-1,1,0,w,9,-1,1,0,w,60,2,179,236 # 67 GMT+4:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Aqtau Asia/Tbilisi ] -d,14400,2,-1,1,60,w,9,-1,1,60,w,60,1,184 # 68 GMT+4:00 Mar lastSun 1:00 Oct lastSun 1:00 1:00 [ Asia/Baku ] -d,14400,2,-1,1,120,s,9,-1,1,120,s,60,3,247,339,372 # 69 GMT+4:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yerevan Europe/Samara NET ] -s,16200,1,205 # 70 GMT+4:30 [ Asia/Kabul ] -s,18000,10,181,196,207,230,235,302,358,362,364,374 # 71 GMT+5:00 [ Asia/Ashkhabad Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT ] -d,18000,2,-1,1,0,w,9,-1,1,0,w,60,1,180 # 72 GMT+5:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Aqtobe ] -d,18000,2,-1,1,120,s,9,-1,1,120,s,60,1,246 # 73 GMT+5:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yekaterinburg ] -d,18000,2,-1,1,150,w,9,-1,1,150,w,60,1,187 # 74 GMT+5:00 Mar lastSun 2:30 Oct lastSun 2:30 1:00 [ Asia/Bishkek ] -s,19800,2,189,356 # 75 GMT+5:30 [ Asia/Calcutta IST ] -s,20700,1,209 # 76 GMT+5:45 [ Asia/Katmandu ] -s,21600,6,171,191,192,238,270,303 # 77 GMT+6:00 [ Antarctica/Mawson Asia/Colombo Asia/Dacca Asia/Thimbu BST Etc/GMT-6 ] -d,21600,2,-1,1,0,w,9,-1,1,0,w,60,1,176 # 78 GMT+6:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Almaty ] -d,21600,2,-1,1,120,s,9,-1,1,120,s,60,2,219,220 # 79 GMT+6:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Novosibirsk Asia/Omsk ] -s,23400,2,224,360 # 80 GMT+6:30 [ Asia/Rangoon Indian/Cocos ] -s,25200,9,169,185,202,221,229,243,304,359,419 # 81 GMT+7:00 [ Antarctica/Davis Asia/Bangkok Asia/Jakarta Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST ] -d,25200,2,-1,1,0,w,8,-1,1,0,w,60,1,200 # 82 GMT+7:00 Mar lastSun 0:00 Sep lastSun 0:00 1:00 [ Asia/Hovd ] -d,25200,2,-1,1,120,s,9,-1,1,120,s,60,1,210 # 83 GMT+7:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Krasnoyarsk ] -s,28800,9,168,188,194,211,212,233,240,267,305 # 84 GMT+8:00 [ Antarctica/Casey Asia/Brunei Asia/Dili Asia/Kuala_Lumpur Asia/Kuching Asia/Singapore Asia/Ujung_Pandang Australia/Perth Etc/GMT-8 ] -d,28800,3,10,-1,0,w,8,11,-1,0,w,60,7,190,198,208,214,232,242,275 # 85 GMT+8:00 Apr Sun>=10 0:00 Sep Sun>=11 0:00 1:00 [ Asia/Chungking Asia/Harbin Asia/Kashgar Asia/Macao Asia/Shanghai Asia/Urumqi CTT ] -d,28800,5,30,0,0,w,8,30,0,0,w,60,1,234 # 86 GMT+8:00 Jun 30 0:00 Sep 30 0:00 1:00 [ Asia/Taipei ] -d,28800,2,22,0,0,w,8,21,0,0,w,60,1,216 # 87 GMT+8:00 Mar 22 0:00 Sep 21 0:00 1:00 [ Asia/Manila ] -d,28800,2,-1,1,0,w,8,-1,1,0,w,60,1,241 # 88 GMT+8:00 Mar lastSun 0:00 Sep lastSun 0:00 1:00 [ Asia/Ulaanbaatar ] -d,28800,2,-1,1,120,s,9,-1,1,120,s,60,1,201 # 89 GMT+8:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Irkutsk ] -d,28800,4,8,-1,210,w,9,16,-1,210,w,60,1,199 # 90 GMT+8:00 May Sun>=8 3:30 Oct Sun>=16 3:30 1:00 [ Asia/Hong_Kong ] -s,32400,6,203,222,239,306,368,404 # 91 GMT+9:00 [ Asia/Jayapura Asia/Pyongyang Asia/Tokyo Etc/GMT-9 JST Pacific/Palau ] -d,32400,2,-1,1,120,s,9,-1,1,120,s,60,1,245 # 92 GMT+9:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yakutsk ] -d,32400,4,-14,-1,0,w,9,-14,-1,0,w,60,1,231 # 93 GMT+9:00 May Sun<=14 0:00 Oct Sun<=14 0:00 1:00 [ Asia/Seoul ] -d,34200,9,3,0,120,w,2,-1,1,120,w,60,2,0,262 # 94 GMT+9:30 Oct 3 2:00 Mar lastSun 2:00 1:00 [ ACT Australia/Darwin ] -d,34200,9,-1,1,120,s,2,-1,1,120,s,60,2,259,261 # 95 GMT+9:30 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ Australia/Adelaide Australia/Broken_Hill ] -s,36000,7,170,294,390,407,409,413,416 # 96 GMT+10:00 [ Antarctica/DumontDUrville Etc/GMT-10 Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap ] -d,36000,2,-1,1,120,s,9,-1,1,120,s,60,1,244 # 97 GMT+10:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Vladivostok ] -d,36000,9,-1,1,120,s,2,-1,1,120,s,60,3,1,266,268 # 98 GMT+10:00 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ AET Australia/Melbourne Australia/Sydney ] -d,36000,9,-1,1,120,s,2,1,-1,120,s,60,2,260,264 # 99 GMT+10:00 Oct lastSun 2:00s Mar Sun>=1 2:00s 1:00 [ Australia/Brisbane Australia/Lindeman ] -d,36000,9,1,-1,120,s,2,-1,1,120,s,60,1,263 # 100 GMT+10:00 Oct Sun>=1 2:00s Mar lastSun 2:00s 1:00 [ Australia/Hobart ] -d,37800,9,-1,1,120,s,2,-1,1,120,s,30,1,265 # 101 GMT+10:30 Oct lastSun 2:00s Mar lastSun 2:00s 0:30 [ Australia/Lord_Howe ] -s,39600,5,295,389,394,406,417 # 102 GMT+11 [ Etc/GMT-11 Pacific/Guadalcanal Pacific/Kosrae Pacific/Ponape SST ] -d,39600,11,1,0,120,s,2,2,0,120,s,60,1,402 # 103 GMT+11:00 Dec 1 2:00s Mar 2 2:00s 1:00 [ Pacific/Noumea ] -d,39600,2,-1,1,120,s,9,-1,1,120,s,60,1,215 # 104 GMT+11:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Magadan ] -d,39600,9,23,-1,0,w,0,23,-1,0,w,60,1,382 # 105 GMT+11:00 Oct Sun>=23 0:00 Jan Sun>=23 0:00 1:00 [ Pacific/Efate ] -s,41400,1,401 # 106 GMT+11:30 [ Pacific/Norfolk ] -s,43200,8,296,386,395,396,399,411,414,415 # 107 GMT+12 [ Etc/GMT-12 Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis ] -d,43200,2,-1,1,120,s,9,-1,1,120,s,60,2,178,206 # 108 GMT+12:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Anadyr Asia/Kamchatka ] -d,43200,10,1,-1,120,w,1,-1,1,180,w,60,1,385 # 109 GMT+12:00 Nov Sun>=1 2:00 Feb lastSun 3:00 1:00 [ Pacific/Fiji ] -d,43200,9,1,-1,120,s,2,15,-1,120,s,60,3,172,373,379 # 110 GMT+12:00 Oct Sun>=1 2:00s Mar Sun>=15 2:00s 1:00 [ Antarctica/McMurdo NST Pacific/Auckland ] -d,45900,9,1,-1,165,s,2,15,-1,165,s,60,1,380 # 111 GMT+12:45 Oct Sun>=1 2:45s Mar Sun>=15 2:45s 1:00 [ Pacific/Chatham ] -s,46800,2,297,383 # 112 GMT+13 [ Etc/GMT-13 Pacific/Enderbury ] -d,46800,9,1,-7,120,s,3,16,-1,120,s,60,1,412 # 113 GMT+13:00 Oct Sat>=1 2:00s Apr Sun>=16 2:00s 1:00 [ Pacific/Tongatapu ] -s,50400,2,298,393 # 114 GMT+14 [ Etc/GMT-14 Pacific/Kiritimati ] +d,-36000,9,-1,1,0,w,2,1,-1,0,w,30,1,419 # 4 GMT-10:00 Oct lastSun 0:00 Mar Sun>=1 0:00 0:30 [ Pacific/Rarotonga ] +s,-34200,1,408 # 5 GMT-9:30 [ Pacific/Marquesas ] +s,-32400,2,296,399 # 6 GMT-9 [ Etc/GMT+9 Pacific/Gambier ] +d,-32400,3,1,-1,120,w,9,-1,1,120,w,60,5,4,58,112,135,169 # 7 GMT-9:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ AST America/Anchorage America/Juneau America/Nome America/Yakutat ] +s,-28800,2,295,416 # 8 GMT-8 [ Etc/GMT+8 Pacific/Pitcairn ] +d,-28800,3,1,-1,120,w,9,-1,1,120,w,60,6,83,116,164,166,167,388 # 9 GMT-8:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Dawson America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse PST ] +s,-25200,5,84,103,140,294,386 # 10 GMT-7:00 [ America/Dawson_Creek America/Hermosillo America/Phoenix Etc/GMT+7 PNT ] +d,-25200,3,1,-1,120,w,9,-1,1,120,w,60,8,69,78,85,88,108,122,170,382 # 11 GMT-7:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Boise America/Chihuahua America/Denver America/Edmonton America/Inuvik America/Mazatlan America/Yellowknife MST ] +s,-21600,5,119,149,160,293,398 # 12 GMT-6:00 [ America/Managua America/Regina America/Swift_Current Etc/GMT+6 Pacific/Galapagos ] +d,-21600,3,1,-1,120,w,9,-1,1,120,w,60,9,71,72,77,124,125,126,128,146,278 # 13 GMT-6:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Cambridge_Bay America/Cancun America/Chicago America/Menominee America/Merida America/Mexico_City America/Monterrey America/Rainy_River CST ] +d,-21600,3,1,-1,120,w,9,-1,1,120,s,60,1,168 # 14 GMT-6:00 Apr Sun>=1 2:00 Oct lastSun 2:00s 1:00 [ America/Winnipeg ] +d,-21600,11,18,0,0,w,1,12,0,0,w,60,1,66 # 15 GMT-6:00 Dec 18 0:00 Feb 12 0:00 1:00 [ America/Belize ] +d,-21600,0,15,-7,0,w,2,15,0,0,w,60,1,80 # 16 GMT-6:00 Jan Sat>=15 0:00 Mar 15 0:00 1:00 [ America/Costa_Rica ] +d,-21600,2,23,0,0,w,8,7,0,0,w,60,1,98 # 17 GMT-6:00 Mar 23 0:00 Sep 7 0:00 1:00 [ America/Guatemala ] +d,-21600,4,1,-1,0,w,8,-1,1,0,w,60,2,90,161 # 18 GMT-6:00 May Sun>=1 0:00 Sep lastSun 0:00 1:00 [ America/El_Salvador America/Tegucigalpa ] +d,-21600,9,9,-1,0,w,2,9,-1,0,w,60,1,392 # 19 GMT-6:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ Pacific/Easter ] +s,-18000,15,76,89,99,104,105,106,107,109,110,137,138,143,147,292,366 # 20 GMT-5:00 [ America/Cayman America/Eirunepe America/Guayaquil America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Iqaluit America/Jamaica America/Panama America/Pangnirtung America/Porto_Acre America/Rankin_Inlet Etc/GMT+5 IET ] +d,-18000,3,1,-1,0,w,9,-1,1,0,w,60,1,95 # 21 GMT-5:00 Apr Sun>=1 0:00 Oct lastSun 0:00 1:00 [ America/Grand_Turk ] +d,-18000,3,1,-1,0,s,9,-1,1,0,s,60,1,102 # 22 GMT-5:00 Apr Sun>=1 0:00s Oct lastSun 0:00s 1:00 [ America/Havana ] +d,-18000,3,1,-1,60,s,9,-1,1,60,s,60,1,141 # 23 GMT-5:00 Apr Sun>=1 1:00s Oct lastSun 1:00s 1:00 [ America/Port-au-Prince ] +d,-18000,3,1,-1,120,w,9,-1,1,120,w,60,9,86,113,117,130,132,133,134,163,283 # 24 GMT-5:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Detroit America/Kentucky/Monticello America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Thunder_Bay EST ] +d,-18000,0,1,0,0,w,3,1,0,0,w,60,1,115 # 25 GMT-5:00 Jan 1 0:00 Apr 1 0:00 1:00 [ America/Lima ] +d,-18000,4,2,0,0,w,11,31,0,0,w,60,1,68 # 26 GMT-5:00 May 2 0:00 Dec 31 0:00 1:00 [ America/Bogota ] +s,-14400,25,59,60,62,67,73,82,87,96,97,100,114,120,121,131,142,144,145,152,156,157,158,159,165,291,387 # 27 GMT-4:00 [ America/Anguilla America/Antigua America/Aruba America/Boa_Vista America/Caracas America/Curacao America/Dominica America/Grenada America/Guadeloupe America/Guyana America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Tortola Etc/GMT+4 PRT ] +d,-14400,3,1,-1,1,w,9,-1,1,1,w,60,1,94 # 28 GMT-4:00 Apr Sun>=1 0:01 Oct lastSun 0:01 1:00 [ America/Goose_Bay ] +d,-14400,3,1,-1,120,w,9,-1,1,120,w,60,4,92,101,162,253 # 29 GMT-4:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Glace_Bay America/Halifax America/Thule Atlantic/Bermuda ] +d,-14400,3,15,-1,120,w,8,25,0,120,w,60,1,64 # 30 GMT-4:00 Apr Sun>=15 2:00 Sep 25 2:00 1:00 [ America/Barbados ] +d,-14400,9,1,-1,0,w,1,-1,1,0,w,60,1,63 # 31 GMT-4:00 Oct Sun>=1 0:00 Feb lastSun 0:00 1:00 [ America/Asuncion ] +d,-14400,9,8,-1,0,w,1,15,-1,0,w,60,1,81 # 32 GMT-4:00 Oct Sun>=8 0:00 Feb Sun>=15 0:00 1:00 [ America/Cuiaba ] +d,-14400,9,9,-1,0,w,2,9,-1,0,w,60,2,151,176 # 33 GMT-4:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ America/Santiago Antarctica/Palmer ] +d,-14400,8,8,-1,0,w,3,16,-1,0,w,60,1,262 # 34 GMT-4:00 Sep Sun>=8 0:00 Apr Sun>=16 0:00 1:00 [ Atlantic/Stanley ] +d,-12600,3,1,-1,1,w,9,-1,1,1,w,60,2,155,277 # 35 GMT-3:30 Apr Sun>=1 0:01 Oct lastSun 0:01 1:00 [ America/St_Johns CNT ] +s,-10800,14,2,65,70,74,75,79,91,111,118,123,139,148,150,290 # 36 GMT-3:00 [ AGT America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Fortaleza America/Jujuy America/Maceio America/Mendoza America/Paramaribo America/Recife America/Rosario Etc/GMT+3 ] +d,-10800,3,1,-1,120,w,9,-1,1,120,w,60,1,127 # 37 GMT-3:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Miquelon ] +d,-10800,2,-1,1,60,u,9,-1,1,60,u,60,1,93 # 38 GMT-3:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Godthab ] +d,-10800,9,18,0,0,w,1,28,0,0,w,60,1,129 # 39 GMT-3:00 Oct 18 0:00 Feb 28 0:00 1:00 [ America/Montevideo ] +d,-10800,9,8,-1,0,w,1,15,-1,0,w,60,3,61,153,273 # 40 GMT-3:00 Oct Sun>=8 0:00 Feb Sun>=15 0:00 1:00 [ America/Araguaina America/Sao_Paulo BET ] +s,-7200,3,136,260,289 # 41 GMT-2:00 [ America/Noronha Atlantic/South_Georgia Etc/GMT+2 ] +s,-3600,3,255,257,285 # 42 GMT-1:00 [ Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 ] +d,-3600,2,-1,1,60,u,9,-1,1,60,u,60,2,154,252 # 43 GMT-1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Scoresbysund Atlantic/Azores ] +s,0,21,5,10,12,13,18,20,21,25,36,45,49,50,52,53,259,261,284,311,312,364,429 # 44 GMT+0:00 [ Africa/Abidjan Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/UCT Etc/UTC GMT UTC ] +d,0,5,1,0,0,w,8,1,0,0,w,60,1,26 # 45 GMT+0:00 Jun 1 0:00 Sep 1 0:00 1:00 [ Africa/Freetown ] +d,0,2,-1,1,60,u,9,-1,1,60,u,60,8,254,256,258,316,325,331,333,431 # 46 GMT+0:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London WET ] +d,0,8,1,0,0,w,11,31,0,0,w,20,1,6 # 47 GMT+0:00 Sep 1 0:00 Dec 31 0:00 0:20 [ Africa/Accra ] +s,3600,13,8,11,15,24,33,34,35,37,40,47,48,51,297 # 48 GMT+1:00 [ Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Etc/GMT-1 ] +d,3600,2,-1,1,60,u,9,-1,1,60,u,60,32,19,178,281,313,314,317,318,319,320,322,324,326,332,334,335,336,338,340,341,342,344,346,347,349,351,353,356,357,358,360,361,363 # 49 GMT+1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Africa/Ceuta Arctic/Longyearbyen ECT Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Ljubljana Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/San_Marino Europe/Sarajevo Europe/Skopje Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Warsaw Europe/Zagreb Europe/Zurich ] +d,3600,2,-1,1,120,s,9,-1,1,120,s,60,2,276,380 # 50 GMT+1:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ CET MET ] +d,3600,4,1,0,0,s,8,-1,1,0,s,60,1,55 # 51 GMT+1:00 May 1 0:00s Sep lastSun 0:00s 1:00 [ Africa/Tunis ] +d,3600,8,1,-1,120,w,3,1,-1,120,w,60,1,56 # 52 GMT+1:00 Sep Sun>=1 2:00 Apr Sun>=1 2:00 1:00 [ Africa/Windhoek ] +s,7200,16,14,16,27,28,32,38,39,41,42,43,54,275,303,343,352,359 # 53 GMT+2:00 [ Africa/Blantyre Africa/Bujumbura Africa/Gaborone Africa/Harare Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli CAT Etc/GMT-2 Europe/Riga Europe/Tallinn Europe/Vilnius ] +d,7200,3,1,0,0,w,9,1,0,0,w,60,1,196 # 54 GMT+2:00 Apr 1 0:00 Oct 1 0:00 1:00 [ Asia/Damascus ] +d,7200,3,1,0,60,w,8,24,0,60,w,60,1,208 # 55 GMT+2:00 Apr 1 1:00 Sep 24 1:00 1:00 [ Asia/Jerusalem ] +d,7200,3,15,-6,0,w,9,15,-6,0,w,60,1,201 # 56 GMT+2:00 Apr Fri>=15 0:00 Oct Fri>=15 0:00 1:00 [ Asia/Gaza ] +d,7200,3,-1,6,0,s,8,-1,5,1380,s,60,2,3,17 # 57 GMT+2:00 Apr lastFri 0:00s Sep lastThu 23:00s 1:00 [ ART Africa/Cairo ] +d,7200,2,-1,1,0,w,9,-1,1,0,w,60,1,190 # 58 GMT+2:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Beirut ] +d,7200,2,-1,1,60,u,9,-1,1,60,u,60,12,222,282,315,321,323,327,328,330,348,350,355,362 # 59 GMT+2:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Asia/Nicosia EET Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kiev Europe/Simferopol Europe/Sofia Europe/Uzhgorod Europe/Zaporozhye ] +d,7200,2,-1,1,120,s,9,-1,1,120,s,60,2,329,337 # 60 GMT+2:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Kaliningrad Europe/Minsk ] +d,7200,2,-1,5,0,s,8,-1,5,0,s,60,1,181 # 61 GMT+2:00 Mar lastThu 0:00s Sep lastThu 0:00s 1:00 [ Asia/Amman ] +d,7200,8,15,-1,120,w,2,15,-1,120,w,60,1,29 # 62 GMT+2:00 Sep Sun>=15 2:00 Mar Sun>=15 2:00 1:00 [ Africa/Johannesburg ] +s,10800,19,7,9,22,23,30,31,44,46,177,179,187,217,227,229,280,304,368,372,377 # 63 GMT+3:00 [ Africa/Addis_Ababa Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Indian/Antananarivo Indian/Comoro Indian/Mayotte ] +d,10800,3,1,0,180,s,9,1,0,180,s,60,1,186 # 64 GMT+3:00 Apr 1 3:00s Oct 1 3:00s 1:00 [ Asia/Baghdad ] +d,10800,2,-1,1,120,s,9,-1,1,120,s,60,2,339,354 # 65 GMT+3:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Moscow Europe/Tiraspol ] +s,11224,3,230,231,232 # 66 GMT+3:07:04 [ Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 ] +d,12600,2,20,0,0,w,8,23,0,0,w,60,1,241 # 67 GMT+3:30 Mar 20 0:00 Sep 23 0:00 1:00 [ Asia/Tehran ] +s,14400,6,199,221,305,374,376,378 # 68 GMT+4:00 [ Asia/Dubai Asia/Muscat Etc/GMT-4 Indian/Mahe Indian/Mauritius Indian/Reunion ] +d,14400,2,-1,1,0,w,9,-1,1,0,w,60,2,183,240 # 69 GMT+4:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Aqtau Asia/Tbilisi ] +d,14400,2,-1,1,60,w,9,-1,1,60,w,60,1,188 # 70 GMT+4:00 Mar lastSun 1:00 Oct lastSun 1:00 1:00 [ Asia/Baku ] +d,14400,2,-1,1,120,s,9,-1,1,120,s,60,3,251,345,383 # 71 GMT+4:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yerevan Europe/Samara NET ] +s,16200,1,209 # 72 GMT+4:30 [ Asia/Kabul ] +s,18000,10,185,200,211,234,239,306,369,373,375,385 # 73 GMT+5:00 [ Asia/Ashgabat Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT ] +d,18000,2,-1,1,0,w,9,-1,1,0,w,60,1,184 # 74 GMT+5:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Aqtobe ] +d,18000,2,-1,1,120,s,9,-1,1,120,s,60,1,250 # 75 GMT+5:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yekaterinburg ] +d,18000,2,-1,1,150,w,9,-1,1,150,w,60,1,191 # 76 GMT+5:00 Mar lastSun 2:30 Oct lastSun 2:30 1:00 [ Asia/Bishkek ] +s,19800,2,193,367 # 77 GMT+5:30 [ Asia/Calcutta IST ] +s,20700,1,213 # 78 GMT+5:45 [ Asia/Katmandu ] +s,21600,6,174,195,197,242,274,307 # 79 GMT+6:00 [ Antarctica/Mawson Asia/Colombo Asia/Dhaka Asia/Thimphu BST Etc/GMT-6 ] +d,21600,2,-1,1,0,w,9,-1,1,0,w,60,1,180 # 80 GMT+6:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Almaty ] +d,21600,2,-1,1,120,s,9,-1,1,120,s,60,2,223,224 # 81 GMT+6:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Novosibirsk Asia/Omsk ] +s,23400,2,228,371 # 82 GMT+6:30 [ Asia/Rangoon Indian/Cocos ] +s,25200,9,172,189,206,225,233,247,308,370,430 # 83 GMT+7:00 [ Antarctica/Davis Asia/Bangkok Asia/Jakarta Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST ] +d,25200,2,-1,1,0,w,8,-1,1,0,w,60,1,204 # 84 GMT+7:00 Mar lastSun 0:00 Sep lastSun 0:00 1:00 [ Asia/Hovd ] +d,25200,2,-1,1,120,s,9,-1,1,120,s,60,1,214 # 85 GMT+7:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Krasnoyarsk ] +s,28800,8,171,192,215,216,237,244,271,309 # 86 GMT+8:00 [ Antarctica/Casey Asia/Brunei Asia/Kuala_Lumpur Asia/Kuching Asia/Singapore Asia/Ujung_Pandang Australia/Perth Etc/GMT-8 ] +d,28800,3,10,-1,0,w,8,11,-1,0,w,60,7,194,202,212,218,236,246,279 # 87 GMT+8:00 Apr Sun>=10 0:00 Sep Sun>=11 0:00 1:00 [ Asia/Chungking Asia/Harbin Asia/Kashgar Asia/Macao Asia/Shanghai Asia/Urumqi CTT ] +d,28800,5,30,0,0,w,8,30,0,0,w,60,1,238 # 88 GMT+8:00 Jun 30 0:00 Sep 30 0:00 1:00 [ Asia/Taipei ] +d,28800,2,22,0,0,w,8,21,0,0,w,60,1,220 # 89 GMT+8:00 Mar 22 0:00 Sep 21 0:00 1:00 [ Asia/Manila ] +d,28800,2,-1,1,0,w,8,-1,1,0,w,60,1,245 # 90 GMT+8:00 Mar lastSun 0:00 Sep lastSun 0:00 1:00 [ Asia/Ulaanbaatar ] +d,28800,2,-1,1,120,s,9,-1,1,120,s,60,1,205 # 91 GMT+8:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Irkutsk ] +d,28800,4,8,-1,210,w,9,16,-1,210,w,60,1,203 # 92 GMT+8:00 May Sun>=8 3:30 Oct Sun>=16 3:30 1:00 [ Asia/Hong_Kong ] +s,32400,7,198,207,226,243,310,379,415 # 93 GMT+9:00 [ Asia/Dili Asia/Jayapura Asia/Pyongyang Asia/Tokyo Etc/GMT-9 JST Pacific/Palau ] +d,32400,2,-1,1,120,s,9,-1,1,120,s,60,1,249 # 94 GMT+9:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Yakutsk ] +d,32400,4,-14,-1,0,w,9,-14,-1,0,w,60,1,235 # 95 GMT+9:00 May Sun<=14 0:00 Oct Sun<=14 0:00 1:00 [ Asia/Seoul ] +d,34200,9,3,0,120,w,2,-1,1,120,w,60,2,0,266 # 96 GMT+9:30 Oct 3 2:00 Mar lastSun 2:00 1:00 [ ACT Australia/Darwin ] +d,34200,9,-1,1,120,s,2,-1,1,120,s,60,2,263,265 # 97 GMT+9:30 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ Australia/Adelaide Australia/Broken_Hill ] +s,36000,7,173,298,401,418,420,424,427 # 98 GMT+10:00 [ Antarctica/DumontDUrville Etc/GMT-10 Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap ] +d,36000,2,-1,1,120,s,9,-1,1,120,s,60,1,248 # 99 GMT+10:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Vladivostok ] +d,36000,9,-1,1,120,s,2,-1,1,120,s,60,3,1,270,272 # 100 GMT+10:00 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ AET Australia/Melbourne Australia/Sydney ] +d,36000,9,-1,1,120,s,2,1,-1,120,s,60,2,264,268 # 101 GMT+10:00 Oct lastSun 2:00s Mar Sun>=1 2:00s 1:00 [ Australia/Brisbane Australia/Lindeman ] +d,36000,9,1,-1,120,s,2,-1,1,120,s,60,1,267 # 102 GMT+10:00 Oct Sun>=1 2:00s Mar lastSun 2:00s 1:00 [ Australia/Hobart ] +d,37800,9,-1,1,120,s,2,-1,1,120,s,30,1,269 # 103 GMT+10:30 Oct lastSun 2:00s Mar lastSun 2:00s 0:30 [ Australia/Lord_Howe ] +s,39600,5,299,400,405,417,428 # 104 GMT+11 [ Etc/GMT-11 Pacific/Guadalcanal Pacific/Kosrae Pacific/Ponape SST ] +d,39600,11,1,0,120,s,2,2,0,120,s,60,1,413 # 105 GMT+11:00 Dec 1 2:00s Mar 2 2:00s 1:00 [ Pacific/Noumea ] +d,39600,2,-1,1,120,s,9,-1,1,120,s,60,1,219 # 106 GMT+11:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Magadan ] +d,39600,9,23,-1,0,w,0,23,-1,0,w,60,1,393 # 107 GMT+11:00 Oct Sun>=23 0:00 Jan Sun>=23 0:00 1:00 [ Pacific/Efate ] +s,41400,1,412 # 108 GMT+11:30 [ Pacific/Norfolk ] +s,43200,8,300,397,406,407,410,422,425,426 # 109 GMT+12 [ Etc/GMT-12 Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis ] +d,43200,2,-1,1,120,s,9,-1,1,120,s,60,2,182,210 # 110 GMT+12:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Anadyr Asia/Kamchatka ] +d,43200,10,1,-1,120,w,1,-1,1,180,w,60,1,396 # 111 GMT+12:00 Nov Sun>=1 2:00 Feb lastSun 3:00 1:00 [ Pacific/Fiji ] +d,43200,9,1,-1,120,s,2,15,-1,120,s,60,3,175,384,390 # 112 GMT+12:00 Oct Sun>=1 2:00s Mar Sun>=15 2:00s 1:00 [ Antarctica/McMurdo NST Pacific/Auckland ] +d,45900,9,1,-1,165,s,2,15,-1,165,s,60,1,391 # 113 GMT+12:45 Oct Sun>=1 2:45s Mar Sun>=15 2:45s 1:00 [ Pacific/Chatham ] +s,46800,2,301,394 # 114 GMT+13 [ Etc/GMT-13 Pacific/Enderbury ] +d,46800,10,4,0,120,s,0,27,0,120,s,60,1,423 # 115 GMT+13:00 Nov 4 2:00s Jan 27 2:00s 1:00 [ Pacific/Tongatapu ] +s,50400,2,302,404 # 116 GMT+14 [ Etc/GMT-14 Pacific/Kiritimati ] end -#--- Offset index --- +#--- Offset INDEX --- #| gmt_offset,default_id,id_count,id_list 39 # index by offset entries to follow --43200,284,1,284 # -12:00 d=Etc/GMT+12 Etc/GMT+12 --39600,378,6,283,370,378,398,400,403 # -11:00 d=Pacific/Apia Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago --36000,391,8,57,282,354,384,391,392,408,410 # -10:00 d=Pacific/Honolulu America/Adak Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Rarotonga Pacific/Tahiti --34200,397,1,397 # -9:30 d=Pacific/Marquesas Pacific/Marquesas --32400,58,7,4,58,111,133,166,292,388 # -9:00 d=America/Anchorage AST America/Anchorage America/Juneau America/Nome America/Yakutat Etc/GMT+9 Pacific/Gambier --28800,114,8,83,114,161,163,164,291,377,405 # -8:00 d=America/Los_Angeles America/Dawson America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse Etc/GMT+8 PST Pacific/Pitcairn --25200,85,13,69,78,84,85,88,102,107,120,138,167,290,371,375 # -7:00 d=America/Denver America/Boise America/Chihuahua America/Dawson_Creek America/Denver America/Edmonton America/Hermosillo America/Inuvik America/Mazatlan America/Phoenix America/Yellowknife Etc/GMT+7 MST PNT --21600,77,24,66,71,72,77,80,89,97,108,117,122,123,124,126,136,144,145,146,157,158,165,274,289,381,387 # -6:00 d=America/Chicago America/Belize America/Cambridge_Bay America/Cancun America/Chicago America/Costa_Rica America/El_Salvador America/Guatemala America/Iqaluit America/Managua America/Menominee America/Merida America/Mexico_City America/Monterrey America/Pangnirtung America/Rainy_River America/Rankin_Inlet America/Regina America/Swift_Current America/Tegucigalpa America/Winnipeg CST Etc/GMT+6 Pacific/Easter Pacific/Galapagos --18000,106,24,68,76,86,94,98,101,103,104,105,106,109,113,115,128,130,131,132,135,139,141,160,279,288,355 # -5:00 d=America/Indianapolis America/Bogota America/Cayman America/Detroit America/Grand_Turk America/Guayaquil America/Havana America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Jamaica America/Lima America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Panama America/Port-au-Prince America/Porto_Acre America/Thunder_Bay EST Etc/GMT+5 IET --14400,143,36,59,60,62,63,64,67,73,81,82,87,91,93,95,96,99,100,112,118,119,129,140,142,143,148,149,153,154,155,156,159,162,173,249,258,287,376 # -4:00 d=America/Puerto_Rico America/Anguilla America/Antigua America/Aruba America/Asuncion America/Barbados America/Boa_Vista America/Caracas America/Cuiaba America/Curacao America/Dominica America/Glace_Bay America/Goose_Bay America/Grenada America/Guadeloupe America/Guyana America/Halifax America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santiago America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Thule America/Tortola Antarctica/Palmer Atlantic/Bermuda Atlantic/Stanley Etc/GMT+4 PRT --12600,152,2,152,273 # -3:30 d=America/St_Johns America/St_Johns CNT --10800,70,19,2,61,65,70,74,75,79,90,92,110,116,121,125,127,137,147,150,269,286 # -3:00 d=America/Buenos_Aires AGT America/Araguaina America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Fortaleza America/Godthab America/Jujuy America/Maceio America/Mendoza America/Miquelon America/Montevideo America/Paramaribo America/Rosario America/Sao_Paulo BET Etc/GMT+3 --7200,134,3,134,256,285 # -2:00 d=America/Noronha America/Noronha Atlantic/South_Georgia Etc/GMT+2 --3600,248,5,151,248,251,253,281 # -1:00 d=Atlantic/Azores America/Scoresbysund Atlantic/Azores Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 -0,353,31,5,6,10,12,13,18,20,21,25,26,36,45,49,50,52,53,250,252,254,255,257,280,307,308,312,320,326,327,353,418,420 # +0:00 d=GMT Africa/Abidjan Africa/Accra Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Freetown Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/UCT Etc/UTC Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London GMT UTC WET -3600,335,41,8,11,15,19,24,33,34,35,37,40,47,48,51,55,56,272,277,293,309,310,313,314,315,317,319,321,328,329,330,332,334,335,336,338,342,344,347,348,350,352,369 # +1:00 d=Europe/Paris Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Ceuta Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Africa/Tunis Africa/Windhoek CET ECT Etc/GMT-1 Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vienna Europe/Warsaw Europe/Zurich MET -7200,17,38,3,14,16,17,27,28,29,32,38,39,41,42,43,54,177,186,193,197,204,218,271,278,299,311,316,318,322,323,324,325,331,337,340,341,343,346,349,351 # +2:00 d=Africa/Cairo ART Africa/Blantyre Africa/Bujumbura Africa/Cairo Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli Asia/Amman Asia/Beirut Asia/Damascus Asia/Gaza Asia/Jerusalem Asia/Nicosia CAT EET Etc/GMT-2 Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kaliningrad Europe/Kiev Europe/Minsk Europe/Riga Europe/Simferopol Europe/Sofia Europe/Tallinn Europe/Uzhgorod Europe/Vilnius Europe/Zaporozhye -10800,7,22,7,9,22,23,30,31,44,46,174,175,182,183,213,223,225,276,300,333,345,357,361,366 # +3:00 d=Africa/Addis_Ababa Africa/Addis_Ababa Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Baghdad Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Europe/Moscow Europe/Tiraspol Indian/Antananarivo Indian/Comoro Indian/Mayotte -11224,228,3,226,227,228 # +3:07:04 d=Asia/Riyadh89 Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 -12600,237,1,237 # +3:30 d=Asia/Tehran Asia/Tehran -14400,247,12,179,184,195,217,236,247,301,339,363,365,367,372 # +4:00 d=Asia/Yerevan Asia/Aqtau Asia/Baku Asia/Dubai Asia/Muscat Asia/Tbilisi Asia/Yerevan Etc/GMT-4 Europe/Samara Indian/Mahe Indian/Mauritius Indian/Reunion NET -16200,205,1,205 # +4:30 d=Asia/Kabul Asia/Kabul -18000,207,13,180,181,187,196,207,230,235,246,302,358,362,364,374 # +5:00 d=Asia/Karachi Asia/Aqtobe Asia/Ashkhabad Asia/Bishkek Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Asia/Yekaterinburg Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT -19800,189,2,189,356 # +5:30 d=Asia/Calcutta Asia/Calcutta IST -20700,209,1,209 # +5:45 d=Asia/Katmandu Asia/Katmandu -21600,192,9,171,176,191,192,219,220,238,270,303 # +6:00 d=Asia/Dacca Antarctica/Mawson Asia/Almaty Asia/Colombo Asia/Dacca Asia/Novosibirsk Asia/Omsk Asia/Thimbu BST Etc/GMT-6 -23400,224,2,224,360 # +6:30 d=Asia/Rangoon Asia/Rangoon Indian/Cocos -25200,229,11,169,185,200,202,210,221,229,243,304,359,419 # +7:00 d=Asia/Saigon Antarctica/Davis Asia/Bangkok Asia/Hovd Asia/Jakarta Asia/Krasnoyarsk Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST -28800,232,21,168,188,190,194,198,199,201,208,211,212,214,216,232,233,234,240,241,242,267,275,305 # +8:00 d=Asia/Shanghai Antarctica/Casey Asia/Brunei Asia/Chungking Asia/Dili Asia/Harbin Asia/Hong_Kong Asia/Irkutsk Asia/Kashgar Asia/Kuala_Lumpur Asia/Kuching Asia/Macao Asia/Manila Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Ujung_Pandang Asia/Ulaanbaatar Asia/Urumqi Australia/Perth CTT Etc/GMT-8 -32400,239,8,203,222,231,239,245,306,368,404 # +9:00 d=Asia/Tokyo Asia/Jayapura Asia/Pyongyang Asia/Seoul Asia/Tokyo Asia/Yakutsk Etc/GMT-9 JST Pacific/Palau -34200,262,4,0,259,261,262 # +9:30 d=Australia/Darwin ACT Australia/Adelaide Australia/Broken_Hill Australia/Darwin -36000,268,14,1,170,244,260,263,264,266,268,294,390,407,409,413,416 # +10:00 d=Australia/Sydney AET Antarctica/DumontDUrville Asia/Vladivostok Australia/Brisbane Australia/Hobart Australia/Lindeman Australia/Melbourne Australia/Sydney Etc/GMT-10 Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap -37800,265,1,265 # +10:30 d=Australia/Lord_Howe Australia/Lord_Howe -39600,389,8,215,295,382,389,394,402,406,417 # +11:00 d=Pacific/Guadalcanal Asia/Magadan Etc/GMT-11 Pacific/Efate Pacific/Guadalcanal Pacific/Kosrae Pacific/Noumea Pacific/Ponape SST -41400,401,1,401 # +11:30 d=Pacific/Norfolk Pacific/Norfolk -43200,379,14,172,178,206,296,373,379,385,386,395,396,399,411,414,415 # +12:00 d=Pacific/Auckland Antarctica/McMurdo Asia/Anadyr Asia/Kamchatka Etc/GMT-12 NST Pacific/Auckland Pacific/Fiji Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis -45900,380,1,380 # +12:45 d=Pacific/Chatham Pacific/Chatham -46800,383,3,297,383,412 # +13:00 d=Pacific/Enderbury Etc/GMT-13 Pacific/Enderbury Pacific/Tongatapu -50400,393,2,298,393 # +14:00 d=Pacific/Kiritimati Etc/GMT-14 Pacific/Kiritimati +-43200,288,1,288 # -12:00 d=Etc/GMT+12 Etc/GMT+12 +-39600,389,6,287,381,389,409,411,414 # -11:00 d=Pacific/Apia Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago +-36000,402,8,57,286,365,395,402,403,419,421 # -10:00 d=Pacific/Honolulu America/Adak Etc/GMT+10 HST Pacific/Fakaofo Pacific/Honolulu Pacific/Johnston Pacific/Rarotonga Pacific/Tahiti +-34200,408,1,408 # -9:30 d=Pacific/Marquesas Pacific/Marquesas +-32400,58,7,4,58,112,135,169,296,399 # -9:00 d=America/Anchorage AST America/Anchorage America/Juneau America/Nome America/Yakutat Etc/GMT+9 Pacific/Gambier +-28800,116,8,83,116,164,166,167,295,388,416 # -8:00 d=America/Los_Angeles America/Dawson America/Los_Angeles America/Tijuana America/Vancouver America/Whitehorse Etc/GMT+8 PST Pacific/Pitcairn +-25200,85,13,69,78,84,85,88,103,108,122,140,170,294,382,386 # -7:00 d=America/Denver America/Boise America/Chihuahua America/Dawson_Creek America/Denver America/Edmonton America/Hermosillo America/Inuvik America/Mazatlan America/Phoenix America/Yellowknife Etc/GMT+7 MST PNT +-21600,77,21,66,71,72,77,80,90,98,119,124,125,126,128,146,149,160,161,168,278,293,392,398 # -6:00 d=America/Chicago America/Belize America/Cambridge_Bay America/Cancun America/Chicago America/Costa_Rica America/El_Salvador America/Guatemala America/Managua America/Menominee America/Merida America/Mexico_City America/Monterrey America/Rainy_River America/Regina America/Swift_Current America/Tegucigalpa America/Winnipeg CST Etc/GMT+6 Pacific/Easter Pacific/Galapagos +-18000,107,29,68,76,86,89,95,99,102,104,105,106,107,109,110,113,115,117,130,132,133,134,137,138,141,143,147,163,283,292,366 # -5:00 d=America/Indianapolis America/Bogota America/Cayman America/Detroit America/Eirunepe America/Grand_Turk America/Guayaquil America/Havana America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Iqaluit America/Jamaica America/Kentucky/Monticello America/Lima America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Panama America/Pangnirtung America/Port-au-Prince America/Porto_Acre America/Rankin_Inlet America/Thunder_Bay EST Etc/GMT+5 IET +-14400,145,36,59,60,62,63,64,67,73,81,82,87,92,94,96,97,100,101,114,120,121,131,142,144,145,151,152,156,157,158,159,162,165,176,253,262,291,387 # -4:00 d=America/Puerto_Rico America/Anguilla America/Antigua America/Aruba America/Asuncion America/Barbados America/Boa_Vista America/Caracas America/Cuiaba America/Curacao America/Dominica America/Glace_Bay America/Goose_Bay America/Grenada America/Guadeloupe America/Guyana America/Halifax America/La_Paz America/Manaus America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santiago America/Santo_Domingo America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Thule America/Tortola Antarctica/Palmer Atlantic/Bermuda Atlantic/Stanley Etc/GMT+4 PRT +-12600,155,2,155,277 # -3:30 d=America/St_Johns America/St_Johns CNT +-10800,70,20,2,61,65,70,74,75,79,91,93,111,118,123,127,129,139,148,150,153,273,290 # -3:00 d=America/Buenos_Aires AGT America/Araguaina America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Fortaleza America/Godthab America/Jujuy America/Maceio America/Mendoza America/Miquelon America/Montevideo America/Paramaribo America/Recife America/Rosario America/Sao_Paulo BET Etc/GMT+3 +-7200,136,3,136,260,289 # -2:00 d=America/Noronha America/Noronha Atlantic/South_Georgia Etc/GMT+2 +-3600,252,5,154,252,255,257,285 # -1:00 d=Atlantic/Azores America/Scoresbysund Atlantic/Azores Atlantic/Cape_Verde Atlantic/Jan_Mayen Etc/GMT+1 +0,364,31,5,6,10,12,13,18,20,21,25,26,36,45,49,50,52,53,254,256,258,259,261,284,311,312,316,325,331,333,364,429,431 # +0:00 d=GMT Africa/Abidjan Africa/Accra Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Freetown Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu Atlantic/Canary Atlantic/Faeroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/UCT Etc/UTC Europe/Belfast Europe/Dublin Europe/Lisbon Europe/London GMT UTC WET +3600,341,49,8,11,15,19,24,33,34,35,37,40,47,48,51,55,56,178,276,281,297,313,314,317,318,319,320,322,324,326,332,334,335,336,338,340,341,342,344,346,347,349,351,353,356,357,358,360,361,363,380 # +1:00 d=Europe/Paris Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Ceuta Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Africa/Tunis Africa/Windhoek Arctic/Longyearbyen CET ECT Etc/GMT-1 Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Budapest Europe/Copenhagen Europe/Gibraltar Europe/Ljubljana Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Prague Europe/Rome Europe/San_Marino Europe/Sarajevo Europe/Skopje Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Warsaw Europe/Zagreb Europe/Zurich MET +7200,17,38,3,14,16,17,27,28,29,32,38,39,41,42,43,54,181,190,196,201,208,222,275,282,303,315,321,323,327,328,329,330,337,343,348,350,352,355,359,362 # +2:00 d=Africa/Cairo ART Africa/Blantyre Africa/Bujumbura Africa/Cairo Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli Asia/Amman Asia/Beirut Asia/Damascus Asia/Gaza Asia/Jerusalem Asia/Nicosia CAT EET Etc/GMT-2 Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kaliningrad Europe/Kiev Europe/Minsk Europe/Riga Europe/Simferopol Europe/Sofia Europe/Tallinn Europe/Uzhgorod Europe/Vilnius Europe/Zaporozhye +10800,7,22,7,9,22,23,30,31,44,46,177,179,186,187,217,227,229,280,304,339,354,368,372,377 # +3:00 d=Africa/Addis_Ababa Africa/Addis_Ababa Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Baghdad Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh EAT Etc/GMT-3 Europe/Moscow Europe/Tiraspol Indian/Antananarivo Indian/Comoro Indian/Mayotte +11224,232,3,230,231,232 # +3:07:04 d=Asia/Riyadh89 Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 +12600,241,1,241 # +3:30 d=Asia/Tehran Asia/Tehran +14400,251,12,183,188,199,221,240,251,305,345,374,376,378,383 # +4:00 d=Asia/Yerevan Asia/Aqtau Asia/Baku Asia/Dubai Asia/Muscat Asia/Tbilisi Asia/Yerevan Etc/GMT-4 Europe/Samara Indian/Mahe Indian/Mauritius Indian/Reunion NET +16200,209,1,209 # +4:30 d=Asia/Kabul Asia/Kabul +18000,211,13,184,185,191,200,211,234,239,250,306,369,373,375,385 # +5:00 d=Asia/Karachi Asia/Aqtobe Asia/Ashgabat Asia/Bishkek Asia/Dushanbe Asia/Karachi Asia/Samarkand Asia/Tashkent Asia/Yekaterinburg Etc/GMT-5 Indian/Chagos Indian/Kerguelen Indian/Maldives PLT +19800,193,2,193,367 # +5:30 d=Asia/Calcutta Asia/Calcutta IST +20700,213,1,213 # +5:45 d=Asia/Katmandu Asia/Katmandu +21600,197,9,174,180,195,197,223,224,242,274,307 # +6:00 d=Asia/Dhaka Antarctica/Mawson Asia/Almaty Asia/Colombo Asia/Dhaka Asia/Novosibirsk Asia/Omsk Asia/Thimphu BST Etc/GMT-6 +23400,228,2,228,371 # +6:30 d=Asia/Rangoon Asia/Rangoon Indian/Cocos +25200,233,11,172,189,204,206,214,225,233,247,308,370,430 # +7:00 d=Asia/Saigon Antarctica/Davis Asia/Bangkok Asia/Hovd Asia/Jakarta Asia/Krasnoyarsk Asia/Phnom_Penh Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST +28800,236,20,171,192,194,202,203,205,212,215,216,218,220,236,237,238,244,245,246,271,279,309 # +8:00 d=Asia/Shanghai Antarctica/Casey Asia/Brunei Asia/Chungking Asia/Harbin Asia/Hong_Kong Asia/Irkutsk Asia/Kashgar Asia/Kuala_Lumpur Asia/Kuching Asia/Macao Asia/Manila Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Ujung_Pandang Asia/Ulaanbaatar Asia/Urumqi Australia/Perth CTT Etc/GMT-8 +32400,243,9,198,207,226,235,243,249,310,379,415 # +9:00 d=Asia/Tokyo Asia/Dili Asia/Jayapura Asia/Pyongyang Asia/Seoul Asia/Tokyo Asia/Yakutsk Etc/GMT-9 JST Pacific/Palau +34200,266,4,0,263,265,266 # +9:30 d=Australia/Darwin ACT Australia/Adelaide Australia/Broken_Hill Australia/Darwin +36000,272,14,1,173,248,264,267,268,270,272,298,401,418,420,424,427 # +10:00 d=Australia/Sydney AET Antarctica/DumontDUrville Asia/Vladivostok Australia/Brisbane Australia/Hobart Australia/Lindeman Australia/Melbourne Australia/Sydney Etc/GMT-10 Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap +37800,269,1,269 # +10:30 d=Australia/Lord_Howe Australia/Lord_Howe +39600,400,8,219,299,393,400,405,413,417,428 # +11:00 d=Pacific/Guadalcanal Asia/Magadan Etc/GMT-11 Pacific/Efate Pacific/Guadalcanal Pacific/Kosrae Pacific/Noumea Pacific/Ponape SST +41400,412,1,412 # +11:30 d=Pacific/Norfolk Pacific/Norfolk +43200,390,14,175,182,210,300,384,390,396,397,406,407,410,422,425,426 # +12:00 d=Pacific/Auckland Antarctica/McMurdo Asia/Anadyr Asia/Kamchatka Etc/GMT-12 NST Pacific/Auckland Pacific/Fiji Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis +45900,391,1,391 # +12:45 d=Pacific/Chatham Pacific/Chatham +46800,394,3,301,394,423 # +13:00 d=Pacific/Enderbury Etc/GMT-13 Pacific/Enderbury Pacific/Tongatapu +50400,404,2,302,404 # +14:00 d=Pacific/Kiritimati Etc/GMT-14 Pacific/Kiritimati +end + +#--- Country INDEX --- +#| country_int_code,id_count,id_list +238 # index by country entries to follow +0,38,230,231,232,276,282,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,364,380,429,431 # (None) Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 CET EET Etc/GMT 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-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/UCT Etc/UTC GMT MET UTC WET +3,1,314 # AD (Andorra) Europe/Andorra +4,1,199 # AE (United Arab Emirates) Asia/Dubai +5,1,209 # AF (Afghanistan) Asia/Kabul +6,1,60 # AG (Antigua & Barbuda) America/Antigua +8,1,59 # AI (Anguilla) America/Anguilla +11,1,353 # AL (Albania) Europe/Tirane +12,2,251,383 # AM (Armenia) Asia/Yerevan NET +13,1,82 # AN (Netherlands Antilles) America/Curacao +14,1,37 # AO (Angola) Africa/Luanda +16,7,171,172,173,174,175,176,177 # AQ (Antarctica) Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/McMurdo Antarctica/Palmer Antarctica/Syowa +17,7,2,70,74,79,111,123,150 # AR (Argentina) AGT America/Buenos_Aires America/Catamarca America/Cordoba America/Jujuy America/Mendoza America/Rosario +18,1,414 # AS (Samoa (American)) Pacific/Pago_Pago +19,1,358 # AT (Austria) Europe/Vienna +20,12,0,1,263,264,265,266,267,268,269,270,271,272 # AU (Australia) ACT AET Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Darwin Australia/Hobart Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/Perth Australia/Sydney +22,1,62 # AW (Aruba) America/Aruba +25,1,188 # AZ (Azerbaijan) Asia/Baku +32,1,347 # BA (Bosnia & Herzegovina) Europe/Sarajevo +33,1,64 # BB (Barbados) America/Barbados +35,2,197,274 # BD (Bangladesh) Asia/Dhaka BST +36,1,320 # BE (Belgium) Europe/Brussels +37,1,50 # BF (Burkina Faso) Africa/Ouagadougou +38,1,350 # BG (Bulgaria) Europe/Sofia +39,1,187 # BH (Bahrain) Asia/Bahrain +40,1,16 # BI (Burundi) Africa/Bujumbura +41,1,51 # BJ (Benin) Africa/Porto-Novo +44,1,253 # BM (Bermuda) Atlantic/Bermuda +45,1,192 # BN (Brunei) Asia/Brunei +46,1,114 # BO (Bolivia) America/La_Paz +49,14,61,65,67,81,89,91,118,120,136,143,144,148,153,273 # BR (Brazil) America/Araguaina America/Belem America/Boa_Vista America/Cuiaba America/Eirunepe America/Fortaleza America/Maceio America/Manaus America/Noronha America/Porto_Acre America/Porto_Velho America/Recife America/Sao_Paulo BET +50,1,132 # BS (Bahamas) America/Nassau +51,1,242 # BT (Bhutan) Asia/Thimphu +54,1,27 # BW (Botswana) Africa/Gaborone +56,1,337 # BY (Belarus) Europe/Minsk +57,1,66 # BZ (Belize) America/Belize +64,23,71,83,84,88,92,94,101,108,109,130,134,138,146,147,149,155,160,163,166,167,168,170,277 # CA (Canada) America/Cambridge_Bay America/Dawson America/Dawson_Creek America/Edmonton America/Glace_Bay America/Goose_Bay America/Halifax America/Inuvik America/Iqaluit America/Montreal America/Nipigon America/Pangnirtung America/Rainy_River America/Rankin_Inlet America/Regina America/St_Johns America/Swift_Current America/Thunder_Bay America/Vancouver America/Whitehorse America/Winnipeg America/Yellowknife CNT +66,1,371 # CC (Cocos (Keeling) Islands) Indian/Cocos +67,2,33,38 # CD (Congo (Dem. Rep.)) Africa/Kinshasa Africa/Lubumbashi +69,1,11 # CF (Central African Rep.) Africa/Bangui +70,1,15 # CG (Congo (Rep.)) Africa/Brazzaville +71,1,363 # CH (Switzerland) Europe/Zurich +72,1,5 # CI (Cote d'Ivoire) Africa/Abidjan +74,1,419 # CK (Cook Islands) Pacific/Rarotonga +75,2,151,392 # CL (Chile) America/Santiago Pacific/Easter +76,1,24 # CM (Cameroon) Africa/Douala +77,6,194,202,212,236,246,279 # CN (China) Asia/Chungking Asia/Harbin Asia/Kashgar Asia/Shanghai Asia/Urumqi CTT +78,1,68 # CO (Colombia) America/Bogota +81,1,80 # CR (Costa Rica) America/Costa_Rica +84,1,102 # CU (Cuba) America/Havana +85,1,255 # CV (Cape Verde) Atlantic/Cape_Verde +87,1,370 # CX (Christmas Island) Indian/Christmas +88,1,222 # CY (Cyprus) Asia/Nicosia +89,1,342 # CZ (Czech Republic) Europe/Prague +100,1,318 # DE (Germany) Europe/Berlin +105,1,23 # DJ (Djibouti) Africa/Djibouti +106,1,324 # DK (Denmark) Europe/Copenhagen +108,1,87 # DM (Dominica) America/Dominica +110,1,152 # DO (Dominican Republic) America/Santo_Domingo +121,1,8 # DZ (Algeria) Africa/Algiers +130,2,99,398 # EC (Ecuador) America/Guayaquil Pacific/Galapagos +132,1,352 # EE (Estonia) Europe/Tallinn +134,2,3,17 # EG (Egypt) ART Africa/Cairo +135,1,25 # EH (Western Sahara) Africa/El_Aaiun +145,1,9 # ER (Eritrea) Africa/Asmera +146,3,19,254,335 # ES (Spain) Africa/Ceuta Atlantic/Canary Europe/Madrid +147,2,7,280 # ET (Ethiopia) Africa/Addis_Ababa EAT +168,1,327 # FI (Finland) Europe/Helsinki +169,1,396 # FJ (Fiji) Pacific/Fiji +170,1,262 # FK (Falkland Islands) Atlantic/Stanley +172,4,405,417,424,427 # FM (Micronesia) Pacific/Kosrae Pacific/Ponape Pacific/Truk Pacific/Yap +174,1,256 # FO (Faeroe Islands) Atlantic/Faeroe +177,2,281,341 # FR (France) ECT Europe/Paris +192,1,35 # GA (Gabon) Africa/Libreville +193,2,316,333 # GB (Britain (UK)) Europe/Belfast Europe/London +195,1,96 # GD (Grenada) America/Grenada +196,1,240 # GE (Georgia) Asia/Tbilisi +197,1,75 # GF (French Guiana) America/Cayenne +199,1,6 # GH (Ghana) Africa/Accra +200,1,326 # GI (Gibraltar) Europe/Gibraltar +203,3,93,154,162 # GL (Greenland) America/Godthab America/Scoresbysund America/Thule +204,1,12 # GM (Gambia) Africa/Banjul +205,1,20 # GN (Guinea) Africa/Conakry +207,1,97 # GP (Guadeloupe) America/Guadeloupe +208,1,40 # GQ (Equatorial Guinea) Africa/Malabo +209,1,315 # GR (Greece) Europe/Athens +210,1,260 # GS (South Georgia & the South Sandwich Islands) Atlantic/South_Georgia +211,1,98 # GT (Guatemala) America/Guatemala +212,1,401 # GU (Guam) Pacific/Guam +214,1,13 # GW (Guinea-Bissau) Africa/Bissau +216,1,100 # GY (Guyana) America/Guyana +234,1,203 # HK (Hong Kong) Asia/Hong_Kong +237,1,161 # HN (Honduras) America/Tegucigalpa +241,1,361 # HR (Croatia) Europe/Zagreb +243,1,141 # HT (Haiti) America/Port-au-Prince +244,1,322 # HU (Hungary) Europe/Budapest +259,3,206,207,244 # ID (Indonesia) Asia/Jakarta Asia/Jayapura Asia/Ujung_Pandang +260,1,325 # IE (Ireland) Europe/Dublin +267,1,208 # IL (Israel) Asia/Jerusalem +269,2,193,367 # IN (India) Asia/Calcutta IST +270,1,369 # IO (British Indian Ocean Territory) Indian/Chagos +272,1,186 # IQ (Iraq) Asia/Baghdad +273,1,241 # IR (Iran) Asia/Tehran +274,1,259 # IS (Iceland) Atlantic/Reykjavik +275,1,344 # IT (Italy) Europe/Rome +300,1,110 # JM (Jamaica) America/Jamaica +302,1,181 # JO (Jordan) Asia/Amman +303,2,243,379 # JP (Japan) Asia/Tokyo JST +324,1,46 # KE (Kenya) Africa/Nairobi +326,1,191 # KG (Kyrgyzstan) Asia/Bishkek +327,1,225 # KH (Cambodia) Asia/Phnom_Penh +328,3,394,404,422 # KI (Kiribati) Pacific/Enderbury Pacific/Kiritimati Pacific/Tarawa +332,1,372 # KM (Comoros) Indian/Comoro +333,1,156 # KN (St Kitts & Nevis) America/St_Kitts +335,1,226 # KP (Korea (North)) Asia/Pyongyang +337,1,235 # KR (Korea (South)) Asia/Seoul +342,1,217 # KW (Kuwait) Asia/Kuwait +344,1,76 # KY (Cayman Islands) America/Cayman +345,3,180,183,184 # KZ (Kazakhstan) Asia/Almaty Asia/Aqtau Asia/Aqtobe +352,1,247 # LA (Laos) Asia/Vientiane +353,1,190 # LB (Lebanon) Asia/Beirut +354,1,157 # LC (St Lucia) America/St_Lucia +360,1,356 # LI (Liechtenstein) Europe/Vaduz +362,1,195 # LK (Sri Lanka) Asia/Colombo +369,1,45 # LR (Liberia) Africa/Monrovia +370,1,42 # LS (Lesotho) Africa/Maseru +371,1,359 # LT (Lithuania) Europe/Vilnius +372,1,334 # LU (Luxembourg) Europe/Luxembourg +373,1,343 # LV (Latvia) Europe/Riga +376,1,54 # LY (Libya) Africa/Tripoli +384,1,18 # MA (Morocco) Africa/Casablanca +386,1,338 # MC (Monaco) Europe/Monaco +387,2,323,354 # MD (Moldova) Europe/Chisinau Europe/Tiraspol +390,1,368 # MG (Madagascar) Indian/Antananarivo +391,2,406,407 # MH (Marshall Islands) Pacific/Kwajalein Pacific/Majuro +394,1,349 # MK (Macedonia) Europe/Skopje +395,2,10,53 # ML (Mali) Africa/Bamako Africa/Timbuktu +396,1,228 # MM (Myanmar (Burma)) Asia/Rangoon +397,2,204,245 # MN (Mongolia) Asia/Hovd Asia/Ulaanbaatar +398,1,218 # MO (Macao) Asia/Macao +399,1,420 # MP (Northern Mariana Islands) Pacific/Saipan +400,1,121 # MQ (Martinique) America/Martinique +401,1,49 # MR (Mauritania) Africa/Nouakchott +402,1,131 # MS (Montserrat) America/Montserrat +403,1,336 # MT (Malta) Europe/Malta +404,1,376 # MU (Mauritius) Indian/Mauritius +405,1,375 # MV (Maldives) Indian/Maldives +406,1,14 # MW (Malawi) Africa/Blantyre +407,8,72,78,103,122,125,126,128,164 # MX (Mexico) America/Cancun America/Chihuahua America/Hermosillo America/Mazatlan America/Merida America/Mexico_City America/Monterrey America/Tijuana +408,2,215,216 # MY (Malaysia) Asia/Kuala_Lumpur Asia/Kuching +409,1,41 # MZ (Mozambique) Africa/Maputo +416,1,56 # NA (Namibia) Africa/Windhoek +418,1,413 # NC (New Caledonia) Pacific/Noumea +420,1,48 # NE (Niger) Africa/Niamey +421,1,412 # NF (Norfolk Island) Pacific/Norfolk +422,1,34 # NG (Nigeria) Africa/Lagos +424,1,119 # NI (Nicaragua) America/Managua +427,1,313 # NL (Netherlands) Europe/Amsterdam +430,1,340 # NO (Norway) Europe/Oslo +431,1,213 # NP (Nepal) Asia/Katmandu +433,1,410 # NR (Nauru) Pacific/Nauru +436,1,411 # NU (Niue) Pacific/Niue +441,3,384,390,391 # NZ (New Zealand) NST Pacific/Auckland Pacific/Chatham +460,1,221 # OM (Oman) Asia/Muscat +480,1,137 # PA (Panama) America/Panama +484,1,115 # PE (Peru) America/Lima +485,3,399,408,421 # PF (French Polynesia) Pacific/Gambier Pacific/Marquesas Pacific/Tahiti +486,1,418 # PG (Papua New Guinea) Pacific/Port_Moresby +487,1,220 # PH (Philippines) Asia/Manila +490,2,211,385 # PK (Pakistan) Asia/Karachi PLT +491,1,360 # PL (Poland) Europe/Warsaw +492,1,127 # PM (St Pierre & Miquelon) America/Miquelon +493,1,416 # PN (Pitcairn) Pacific/Pitcairn +497,2,145,387 # PR (Puerto Rico) America/Puerto_Rico PRT +498,1,201 # PS (Palestine) Asia/Gaza +499,3,252,258,331 # PT (Portugal) Atlantic/Azores Atlantic/Madeira Europe/Lisbon +502,1,415 # PW (Palau) Pacific/Palau +504,1,63 # PY (Paraguay) America/Asuncion +512,1,227 # QA (Qatar) Asia/Qatar +548,1,378 # RE (Reunion) Indian/Reunion +558,1,321 # RO (Romania) Europe/Bucharest +564,13,182,205,210,214,219,223,224,248,249,250,329,339,345 # RU (Russia) Asia/Anadyr Asia/Irkutsk Asia/Kamchatka Asia/Krasnoyarsk Asia/Magadan Asia/Novosibirsk Asia/Omsk Asia/Vladivostok Asia/Yakutsk Asia/Yekaterinburg Europe/Kaliningrad Europe/Moscow Europe/Samara +566,1,32 # RW (Rwanda) Africa/Kigali +576,1,229 # SA (Saudi Arabia) Asia/Riyadh +577,2,400,428 # SB (Solomon Islands) Pacific/Guadalcanal SST +578,1,374 # SC (Seychelles) Indian/Mahe +579,1,31 # SD (Sudan) Africa/Khartoum +580,1,351 # SE (Sweden) Europe/Stockholm +582,1,237 # SG (Singapore) Asia/Singapore +583,1,261 # SH (St Helena) Atlantic/St_Helena +584,1,332 # SI (Slovenia) Europe/Ljubljana +585,2,178,257 # SJ (Svalbard & Jan Mayen) Arctic/Longyearbyen Atlantic/Jan_Mayen +586,1,319 # SK (Slovakia) Europe/Bratislava +587,1,26 # SL (Sierra Leone) Africa/Freetown +588,1,346 # SM (San Marino) Europe/San_Marino +589,1,21 # SN (Senegal) Africa/Dakar +590,1,44 # SO (Somalia) Africa/Mogadishu +593,1,139 # SR (Suriname) America/Paramaribo +595,1,52 # ST (Sao Tome & Principe) Africa/Sao_Tome +597,1,90 # SV (El Salvador) America/El_Salvador +600,1,196 # SY (Syria) Asia/Damascus +601,1,43 # SZ (Swaziland) Africa/Mbabane +610,1,95 # TC (Turks & Caicos Is) America/Grand_Turk +611,1,47 # TD (Chad) Africa/Ndjamena +613,1,373 # TF (French Southern & Antarctic Lands) Indian/Kerguelen +614,1,36 # TG (Togo) Africa/Lome +615,1,189 # TH (Thailand) Asia/Bangkok +617,1,200 # TJ (Tajikistan) Asia/Dushanbe +618,1,395 # TK (Tokelau) Pacific/Fakaofo +620,1,185 # TM (Turkmenistan) Asia/Ashgabat +621,1,55 # TN (Tunisia) Africa/Tunis +622,1,423 # TO (Tonga) Pacific/Tongatapu +623,1,198 # TP (East Timor) Asia/Dili +625,1,328 # TR (Turkey) Europe/Istanbul +627,1,142 # TT (Trinidad & Tobago) America/Port_of_Spain +629,1,397 # TV (Tuvalu) Pacific/Funafuti +630,1,238 # TW (Taiwan) Asia/Taipei +633,1,22 # TZ (Tanzania) Africa/Dar_es_Salaam +640,4,330,348,355,362 # UA (Ukraine) Europe/Kiev Europe/Simferopol Europe/Uzhgorod Europe/Zaporozhye +646,1,30 # UG (Uganda) Africa/Kampala +652,3,403,409,425 # UM (US minor outlying islands) Pacific/Johnston Pacific/Midway Pacific/Wake +658,28,4,57,58,69,77,85,86,104,105,106,107,112,113,116,117,124,133,135,140,169,278,283,365,366,382,386,388,402 # US (United States) AST America/Adak America/Anchorage America/Boise America/Chicago America/Denver America/Detroit America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Juneau America/Kentucky/Monticello America/Los_Angeles America/Louisville America/Menominee America/New_York America/Nome America/Phoenix America/Yakutat CST EST HST IET MST PNT PST Pacific/Honolulu +664,1,129 # UY (Uruguay) America/Montevideo +665,2,234,239 # UZ (Uzbekistan) Asia/Samarkand Asia/Tashkent +672,1,357 # VA (Vatican City) Europe/Vatican +674,1,159 # VC (St Vincent) America/St_Vincent +676,1,73 # VE (Venezuela) America/Caracas +678,1,165 # VG (Virgin Islands (UK)) America/Tortola +680,1,158 # VI (Virgin Islands (US)) America/St_Thomas +685,2,233,430 # VN (Vietnam) Asia/Saigon VST +692,1,393 # VU (Vanuatu) Pacific/Efate +709,1,426 # WF (Wallis & Futuna) Pacific/Wallis +722,2,381,389 # WS (Samoa (Western)) MIT Pacific/Apia +772,1,179 # YE (Yemen) Asia/Aden +787,1,377 # YT (Mayotte) Indian/Mayotte +788,1,317 # YU (Yugoslavia) Europe/Belgrade +800,1,29 # ZA (South Africa) Africa/Johannesburg +812,1,39 # ZM (Zambia) Africa/Lusaka +822,2,28,275 # ZW (Zimbabwe) Africa/Harare CAT end diff --git a/icu4c/source/i18n/timezone.cpp b/icu4c/source/i18n/timezone.cpp index 1b5d21fffc6..8ff2d3fa09c 100644 --- a/icu4c/source/i18n/timezone.cpp +++ b/icu4c/source/i18n/timezone.cpp @@ -62,6 +62,7 @@ const TimeZone* TimeZone::GMT = new SimpleTimeZone(0, GMT_ID); const TZHeader * TimeZone::DATA = 0; const uint32_t* TimeZone::INDEX_BY_ID = 0; const OffsetIndex* TimeZone::INDEX_BY_OFFSET = 0; +const CountryIndex* TimeZone::INDEX_BY_COUNTRY = 0; UnicodeString* TimeZone::ZONE_IDS = 0; UBool TimeZone::DATA_LOADED = FALSE; UDataMemory* TimeZone::UDATA_POINTER = 0; @@ -96,6 +97,8 @@ void TimeZone::loadZoneData() { (const uint32_t*)((int8_t*)DATA + DATA->nameIndexDelta); INDEX_BY_OFFSET = (const OffsetIndex*)((int8_t*)DATA + DATA->offsetIndexDelta); + INDEX_BY_COUNTRY = + (const CountryIndex*)((int8_t*)DATA + DATA->countryIndexDelta); // Construct the available IDs array. The ordering // of this array conforms to the ordering of the @@ -446,6 +449,74 @@ TimeZone::createAvailableIDs(int32_t rawOffset, int32_t& numIDs) // ------------------------------------- +const UnicodeString** const +TimeZone::createAvailableIDs(const char* country, int32_t& numIDs) { + + // We are creating a new array to existing UnicodeString pointers. + // The caller will delete the array when done, but not the pointers + // in the array. + + if (!DATA_LOADED) { + loadZoneData(); + } + if (0 == DATA) { + numIDs = 0; + return 0; + } + + /* The country index table is a table of variable-sized objects. + * Each entry has an offset to the next entry; the last entry has + * a next entry offset of zero. + * + * The entries are sorted in ascending numerical order of intcode. + * This is an integer representation of the 2-letter ISO 3166 + * country code. It is computed as (c1-'A')*32 + (c0-'A'), where + * the country code is c1 c0, with 'A' <= ci <= 'Z'. + * + * The list of zones is a list of integers, from 0..n-1, where n + * is the total number of system zones. The numbering corresponds + * exactly to the ordering of ZONE_IDS. + */ + const CountryIndex* index = INDEX_BY_COUNTRY; + + uint16_t intcode = 0; + if (country != NULL && *country != NULL) { + intcode = ((country[0] - 'A') << 5) + (country[1] - 'A'); + } + + for (;;) { + if (index->intcode > intcode) { + // Went past our desired country; no match found + break; + } + if (index->intcode == intcode) { + // Found our desired country + const UnicodeString** const result = + (const UnicodeString** const) new UnicodeString*[index->count]; + const uint16_t* zoneNumberArray = &(index->zoneNumber); + for (uint16_t i=0; icount; ++i) { + // Pointer assignment - use existing UnicodeString object! + // Don't create a new UnicodeString on the heap here! + result[i] = &ZONE_IDS[zoneNumberArray[i]]; + } + numIDs = index->count; + return result; + } + // Compute the position of the next entry. If the delta value + // in this entry is zero, then there is no next entry. + uint16_t delta = index->nextEntryDelta; + if (delta == 0) { + break; + } + index = (const CountryIndex*)((int8_t*)index + delta); + } + + numIDs = 0; + return 0; +} + +// ------------------------------------- + const UnicodeString** const TimeZone::createAvailableIDs(int32_t& numIDs) { diff --git a/icu4c/source/i18n/tzdat.h b/icu4c/source/i18n/tzdat.h index 62f1790fa0e..ea1b60ff83a 100644 --- a/icu4c/source/i18n/tzdat.h +++ b/icu4c/source/i18n/tzdat.h @@ -6,6 +6,7 @@ * Date Name Description * 11/24/99 aliu Creation. * 12/13/1999 srl Padded OffsetIndex to 4 byte values +* 02/01/01 aliu Added country index ********************************************************************** */ @@ -48,23 +49,6 @@ * data structure could be modified to index into the name table * directly.) * - * In the following table, sizes are estimated sizes for a zone list - * of about 200 standard and 200 DST zones, which is typical in 1999. - * - * [THIS IS OBSOLETE - Needs updating for format 3] - * 0K TZHeader - * 2K Standard zone table (StandardZone[]) - * 4K DST zone table (Zone[]) - * 2K Index table, sorted by name, 4 bytes / zone - * This is a list of 'count' deltas sorted in ascending - * lexicographic order of name string. - * 1K Index table, sorted by gmtOffset then name. See - * OffsetIndex struct. - * 6K Name table - always last - * This is all the zone names, in lexicographic order, - * with zero bytes terminating each name. - * 14K TOTAL - * * Any field with a name ending in "delta" is an offset value * from the first byte of the TZHeader structure, unless otherwise * specified. @@ -91,7 +75,7 @@ static const uint8_t TZ_SIG_3 = 0x65; // e // This must match the version number at the top of tz.txt as // well as the version number in the udata header. -static const int8_t TZ_FORMAT_VERSION = 3; // formatVersion[0] +static const int8_t TZ_FORMAT_VERSION = 4; // formatVersion[0] struct TZHeader { uint16_t versionYear; // e.g. "1999j" -> 1999 @@ -102,6 +86,8 @@ struct TZHeader { uint32_t equivTableDelta; // delta to equivalency group table uint32_t offsetIndexDelta; // delta to gmtOffset index table + uint32_t countryIndexDelta; // delta to country code index table + uint32_t nameIndexDelta; // delta to name index table // The name index table is an array of 'count' 32-bit offsets from // the start of this header to equivalency group table entries. @@ -194,4 +180,24 @@ struct OffsetIndex { // a size of 4n. nextEntryDelta skips over any padding. }; +/** + * This variable-sized struct makes up the country index table. To get + * from one table entry to the next, add the nextEntryDelta. If the + * nextEntryDelta is zero then this is the last entry. The country + * index table is designed for sequential access, not random access. + * + * The intcode is an integer representation of the two-letter country + * code. It is computed as (c1-'A')*32 + (c0-'A') where the country + * code is a two-character string c1 c0, 'A' <= ci <= 'Z'. + * + * There are no 4-byte integers in this table, so we don't 4-align the + * entries. + */ +struct CountryIndex { + uint16_t intcode; // see above + uint16_t nextEntryDelta; + uint16_t count; + uint16_t zoneNumber; // There are actually 'count' uint16_t's here +}; + #endif diff --git a/icu4c/source/i18n/unicode/timezone.h b/icu4c/source/i18n/unicode/timezone.h index c410bc4429e..1c0c6819904 100644 --- a/icu4c/source/i18n/unicode/timezone.h +++ b/icu4c/source/i18n/unicode/timezone.h @@ -34,6 +34,7 @@ class SimpleTimeZone; struct TZHeader; struct OffsetIndex; +struct CountryIndex; struct TZEquivalencyGroup; /** @@ -159,6 +160,27 @@ public: */ static const UnicodeString** const createAvailableIDs(int32_t rawOffset, int32_t& numIDs); + /** + * Returns a list of time zone IDs associated with the given + * country. Some zones are affiliated with no country (e.g., + * "UTC"); these may also be retrieved, as a group. + * + *

The caller owns the list that is returned, but does not own + * the strings contained in that list. Delete the array, but + * DON'T delete the elements in the array. + * + * @param country The ISO 3166 two-letter country code, or NULL to + * retrieve zones not affiliated with any country. + * @param numIDs Receives the number of items in the array that is + * returned. + * @return An array of UnicodeString pointers, where each + * UnicodeString is a time zone ID for a time zone with the given + * GMT offset. If there is no timezone that matches the GMT + * offset specified, NULL is returned. + */ + static const UnicodeString** const createAvailableIDs(const char* country, + int32_t& numIDs); + /** * Returns a list of all time zone IDs supported by the TimeZone class (i.e., all * IDs that it's legal to pass to createTimeZone()). The caller owns the list that @@ -539,6 +561,13 @@ private: */ static const OffsetIndex* INDEX_BY_OFFSET; + /** + * INDEX_BY_COUNTRY is a CountryIndex table. This table can + * be walked through sequentially because the entries are of + * variable size. + */ + static const CountryIndex* INDEX_BY_COUNTRY; + //////////////////////////////////////////////////////////////// // Other system zone data structures //////////////////////////////////////////////////////////////// diff --git a/icu4c/source/test/intltest/tztest.cpp b/icu4c/source/test/intltest/tztest.cpp index d2fc57d54ef..8e364364bbc 100644 --- a/icu4c/source/test/intltest/tztest.cpp +++ b/icu4c/source/test/intltest/tztest.cpp @@ -19,6 +19,14 @@ #include #endif +#define CASE(id,test) case id: \ + name = #test; \ + if (exec) { \ + logln(#test "---"); logln(""); \ + test(); \ + } \ + break + // ***************************************************************************** // class TimeZoneTest // ***************************************************************************** @@ -27,79 +35,17 @@ void TimeZoneTest::runIndexedTest( int32_t index, UBool exec, const char* &name, { if (exec) logln("TestSuite TestTimeZone"); switch (index) { - case 0: - name = "TestPRTOffset"; - if (exec) { - logln("TestPRTOffset---"); logln(""); - TestPRTOffset(); - } - break; - case 1: - name = "TestVariousAPI518"; - if (exec) { - logln("TestVariousAPI518---"); logln(""); - TestVariousAPI518(); - } - break; - case 2: - name = "TestGetAvailableIDs913"; - if (exec) { - logln("TestGetAvailableIDs913---"); logln(""); - TestGetAvailableIDs913(); - } - break; - case 3: - name = "TestGenericAPI"; - if (exec) { - logln("TestGenericAPI---"); logln(""); - TestGenericAPI(); - } - break; - case 4: - name = "TestRuleAPI"; - if (exec) { - logln("TestRuleAPI---"); logln(""); - TestRuleAPI(); - } - break; - case 5: - name = "TestShortZoneIDs"; - if (exec) { - logln("TestShortZoneIDs---"); logln(""); - TestShortZoneIDs(); - } - break; - case 6: - name = "TestCustomParse"; - if (exec) { - logln("TestCustomParse---"); logln(""); - TestCustomParse(); - } - break; - case 7: - name = "TestDisplayName"; - if (exec) { - logln("TestDisplayName---"); logln(""); - TestDisplayName(); - } - break; - - case 8: - name = "TestDSTSavings"; - if (exec) { - logln("TestDSTSavings---"); logln(""); - TestDSTSavings(); - } - break; - - case 9: - name = "TestAlternateRules"; - if (exec) { - logln("TestAlternateRules---"); logln(""); - TestAlternateRules(); - } - break; - + CASE(0, TestPRTOffset); + CASE(1, TestVariousAPI518); + CASE(2, TestGetAvailableIDs913); + CASE(3, TestGenericAPI); + CASE(4, TestRuleAPI); + CASE(5, TestShortZoneIDs); + CASE(6, TestCustomParse); + CASE(7, TestDisplayName); + CASE(8, TestDSTSavings); + CASE(9, TestAlternateRules); + CASE(10,TestCountries); default: name = ""; break; } } @@ -594,14 +540,14 @@ void TimeZoneTest::TestShortZoneIDs() const char* compatibilityMap[] = { // This list is copied from tz.alias. If tz.alias - // changes, this list must be updated. Current as of 12/3/99 + // changes, this list must be updated. Current as of 1/31/01 "ACT", "Australia/Darwin", "AET", "Australia/Sydney", "AGT", "America/Buenos_Aires", "ART", "Africa/Cairo", "AST", "America/Anchorage", "BET", "America/Sao_Paulo", - "BST", "Asia/Dacca", + "BST", "Asia/Dhaka", // Spelling changed in 2000h "CAT", "Africa/Harare", "CNT", "America/St_Johns", "CST", "America/Chicago", @@ -1055,3 +1001,48 @@ TimeZoneTest::TestAlternateRules() errln(UnicodeString("The offset for 10AM, 10/17/98 should have been -5 hours, but we got ") + (offset / U_MILLIS_PER_HOUR) + " hours."); } + +/** + * Test country code support. Jitterbug 776. + */ +void TimeZoneTest::TestCountries() { + // Make sure America/Los_Angeles is in the "US" group, and + // Asia/Tokyo isn't. Vice versa for the "JP" group. + int32_t n; + const UnicodeString** s = TimeZone::createAvailableIDs("US", n); + UBool la = false, tokyo = false; + UnicodeString laZone("America/Los_Angeles", ""); + UnicodeString tokyoZone("Asia/Tokyo", ""); + int32_t i; + + for (i=0; izoneNumber) < limit; ++i) { + readLine(in); + char* p = buffer; + index->intcode = (uint16_t)parseInteger(p, SEP, 0, 25*32+25 /*ZZ*/); + index->count = (uint16_t)parseInteger(p, SEP, 0, header.count-1); + uint16_t* zoneNumberArray = &(index->zoneNumber); + if ((int8_t*)(&index->zoneNumber + index->count - 1) >= limit) { + // Oops -- out of space + break; + } + for (uint16_t j=0; jcount; ++j) { + zoneNumberArray[j] = (uint16_t) + parseInteger(p, (j==(index->count-1))?NUL:SEP, + 0, header.count-1); + } + int8_t* nextIndex = (int8_t*)&(zoneNumberArray[index->count]); + index->nextEntryDelta = (uint16_t) ((i==(n-1)) ? 0 : (nextIndex - (int8_t*)index)); + index = (CountryIndex*)nextIndex; + } + readEndMarker(in); + + // Make sure size matches expected value, and pad the total size + countryIndexSize = (int8_t*)index - (int8_t*)result + pad; + if (i != n || countryIndexSize != expectedSize) { + die("Yikes! Interal error while constructing offset index table"); + } + if (pad != 0) { + countryIndexSize += pad; + *(uint16_t*)index = 0; // Clear pad bits + } + fprintf(stdout, " Read %lu country index table entries, in-memory size %ld bytes\n", + n, countryIndexSize); + return (CountryIndex*)result; +} + void gentz::parseHeader(FileStream* in) { int32_t version = readIntegerLine(in, 0, 0xFFFF); diff --git a/icu4c/source/tools/gentz/readme.txt b/icu4c/source/tools/gentz/readme.txt index 27bccbe329f..61eb67e57ab 100644 --- a/icu4c/source/tools/gentz/readme.txt +++ b/icu4c/source/tools/gentz/readme.txt @@ -3,6 +3,9 @@ and others. All Rights Reserved. Readme file for ICU time zone data (source/tools/gentz) +Alan Liu +Last updated 2 Feb 2001 + RAW DATA -------- @@ -19,7 +22,8 @@ Two tools are used to process the data into a format suitable for ICU: gentz tz.txt -> tz.dat (memory mappable binary file) After gentz is run, standard ICU data tools are used to incorporate -tz.dat into the icudata module. +tz.dat into the icudata module. The tz.pl script is run manually; +everything else is automatic. In order to incorporate the raw data from that source into ICU, take the following steps. @@ -34,19 +38,24 @@ the following steps. 3. Run the perl script tz.pl, passing it the directory location as a command-line argument. On Windows system use the batch file - tz.bat. The output of this step is the intermediate text file - source/tools/gentz/tz.txt. + tz.bat. Also specify one or more ourput files: .txt, .htm|.html, + and .java. - As the second argument, pass in "tz.htm". This will generate an - html documentation file that goes into the icu/docs directory. + For ICU4C specify .txt and .htm; typically + + /data/timezone.txt /docs/tz.htm + + where icu is the ICU4C root directory. Double check that these are + the correct locations and file names; they change periodically. As the third argument, pass in "tz.java". This will generate a java source file that will be used to update the ICU4J data. -4. Run source/tools/makedata on Windows. On UNIX systems the - equivalent build steps are performed by 'make' and 'make install'. +4. Do a standard build. The build scripts will automatically detect + that a new .txt file is present and rebuild the binary data (using + gentz) from that. -The tz.txt and tz.htm files and typically checked into CVS, whereas +The .txt and .htm files and typically checked into CVS, whereas the raw data files are not, since they are readily available from the URL listed above. @@ -100,6 +109,3 @@ inversion is explained in the UNIX zone data file "etcetera". Briefly, this is done intentionally in order to comply with POSIX-style signedness. In ICU we reproduce the UNIX zone behavior faithfully, including this confusing aspect. - - -Alan Liu 1999 diff --git a/icu4c/source/tools/gentz/tz.alias b/icu4c/source/tools/gentz/tz.alias index 8661076d306..039741b3ba8 100644 --- a/icu4c/source/tools/gentz/tz.alias +++ b/icu4c/source/tools/gentz/tz.alias @@ -26,14 +26,14 @@ CTT Asia/Shanghai EAT Africa/Addis_Ababa ECT Europe/Paris # EET Europe/Istanbul # EET is a standard UNIX zone -EST America/New_York -HST Pacific/Honolulu +EST America/New_York # Linked to America/Indianapolis in Olson +HST Pacific/Honolulu # Olson LINK IET America/Indianapolis IST Asia/Calcutta JST Asia/Tokyo # MET Asia/Tehran # MET is a standard UNIX zone MIT Pacific/Apia -MST America/Denver +MST America/Denver # Linked to America/Phoenix in Olson NET Asia/Yerevan NST Pacific/Auckland PLT Asia/Karachi @@ -41,5 +41,5 @@ PNT America/Phoenix PRT America/Puerto_Rico PST America/Los_Angeles SST Pacific/Guadalcanal -UTC Etc/GMT +UTC Etc/UTC # Olson LINK VST Asia/Saigon diff --git a/icu4c/source/tools/gentz/tz.pl b/icu4c/source/tools/gentz/tz.pl index 860df404f96..4bf88162704 100755 --- a/icu4c/source/tools/gentz/tz.pl +++ b/icu4c/source/tools/gentz/tz.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl ###################################################################### -# Copyright (C) 1999, International Business Machines +# Copyright (C) 1999-2001, International Business Machines # Corporation and others. All Rights Reserved. ###################################################################### # See: ftp://elsie.nci.nih.gov/pub/tzdata @@ -30,7 +30,7 @@ # - Lines may be followed by a comment; the parser must ignore # anything of the form /\s+#.*$/ in each line. # |3065,14400 # Asia/Dubai GMT+4:00 -# - The file contains a header and 3 lists. +# - The file contains a header and 4 lists. # - The header contains the version of this data file: # 2 original version, without equivalency groups # 3 current version, described here @@ -89,6 +89,20 @@ # | -39600,374,6,279,366,374,394,396,399 # -11:00 d=Pacific/Apia Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago # ... # | end +# - The fourth list is an index by ISO 3166 country code. Each line +# lists a country and the zones mapped into that country by the +# zone.tab file. Zones not mapped into any file are listed on the +# first line. The first number on each line is the intcode for the +# country code. The intcode for 'US' for example is ('U'-'A') * 32 +# + ('S' - 'A') == 658. The second number is the count of list +# items, and the following number are the zone indices. +# | 238 # index by country entries to follow +# | 0,38,230,231,232,276,282,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,364,380,429,431 # (None) Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 CET EET Etc/GMT 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-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/UCT Etc/UTC GMT MET UTC WET +# | 3,1,314 # AD (Andorra) Europe/Andorra +# | 4,1,199 # AE (United Arab Emirates) Asia/Dubai +# | ... +# | 822,2,28,275 # ZW (Zimbabwe) Africa/Harare CAT +# | end ###################################################################### # As of 1999j, here are the various possible values taken by the # rule fields. See code below that generates this data. @@ -108,8 +122,9 @@ use strict; use Getopt::Long; use vars qw(@FILES $YEAR $DATA_DIR $OUT $SEP @MONTH $VERSION_YEAR $VERSION_SUFFIX $RAW_VERSION - $TZ_ALIAS $TZ_DEFAULT $URL $HTML_FILE $JAVA_FILE - $TZ_TXT_VERSION %ZONE_ID_TO_INDEX $END_MARKER); + $TZ_ALIAS $TZ_DEFAULT $URL $TXT_FILE $HTML_FILE $JAVA_FILE + $TZ_TXT_VERSION %ZONE_ID_TO_INDEX $END_MARKER + %COUNTRY_CODES); require 'dumpvar.pl'; use tzparse; use tzutil; @@ -119,10 +134,10 @@ use tzutil; # 1 - unreleased version (?) # 2 - original version # 3 - added equivalency groups -$TZ_TXT_VERSION = 3; +# 4 - added country code index +$TZ_TXT_VERSION = 4; # File names -$OUT = 'tz.txt'; $TZ_ALIAS = 'tz.alias'; $TZ_DEFAULT = 'tz.default'; @@ -161,6 +176,40 @@ if (!$DATA_DIR || ! -d $DATA_DIR) { usage(); } +$TXT_FILE = ''; +$HTML_FILE = ''; +$JAVA_FILE = ''; +while (@ARGV) { + local $_ = shift; + if (/\.java$/i) { + if ($JAVA_FILE) { + print STDERR "Error: Multiple java files specified\n"; + usage(); + } + $JAVA_FILE = $_; + } elsif (/\.html?$/i) { + if ($HTML_FILE) { + print STDERR "Error: Multiple html files specified\n"; + usage(); + } + $HTML_FILE = $_; + } elsif (/\.txt$/i) { + if ($TXT_FILE) { + print STDERR "Error: Multiple txt files specified\n"; + usage(); + } + $TXT_FILE = $_; + } else { + print STDERR "Error: Unexpected command line parameter \"$_\"\n"; + usage(); + } +} + +if (!($TXT_FILE || $JAVA_FILE || $HTML_FILE)) { + print STDERR "Nothing to do! Please specify one or more output files.\n"; + usage(); +} + if ($DATA_DIR =~ /(tzdata(\d{4})(\w?))/) { $RAW_VERSION = $1; $VERSION_YEAR = $2; @@ -184,15 +233,6 @@ if ($DATA_DIR =~ /(tzdata(\d{4})(\w?))/) { usage(); } -$HTML_FILE = shift; - -if ($HTML_FILE =~ /\.java$/i) { - $JAVA_FILE = $HTML_FILE; - $HTML_FILE = shift; -} else { - $JAVA_FILE = shift; -} - @MONTH = qw(jan feb mar apr may jun jul aug sep oct nov dec); @@ -200,22 +240,23 @@ main(); exit(); sub usage { - print STDERR "Usage: $0 data_dir [html_out] [java_out]\n\n"; - print STDERR "data_dir contains the unpacked files from\n"; - print STDERR "$URL/tzdataYYYYR,\n"; - print STDERR "where YYYY is the year and R is the revision\n"; - print STDERR "letter.\n"; + print STDERR "Usage: $0 data_dir [txt_out] [html_out] [java_out]\n\n"; + print STDERR " data_dir contains the unpacked files from\n"; + print STDERR " $URL/tzdataYYYYR,\n"; + print STDERR " where YYYY is the year and R is the revision\n"; + print STDERR " letter.\n"; print STDERR "\n"; - print STDERR "Files that are expected to be present are:\n"; - print STDERR join(", ", @FILES), "\n"; + print STDERR " Files that are expected to be present are:\n"; + print STDERR " ", join(", ", @FILES), "\n"; print STDERR "\n"; - print STDERR "[html_out] optional name of HTML file to output\n"; - print STDERR "[java_out] optional name of Java file to output\n"; + print STDERR " [txt_out] optional name of .txt file to output\n"; + print STDERR " [html_out] optional name of .htm|.html file to output\n"; + print STDERR " [java_out] optional name of .java file to output\n"; exit 1; } sub main { - my (%ZONES, %RULES, @EQUIV); + my (%ZONES, %RULES, @EQUIV, %LINKS, %COUNTRIES); print "Reading"; foreach (@FILES) { @@ -224,13 +265,33 @@ sub main { usage(); } print "."; - TZ::ParseFile("$DATA_DIR/$_", \%ZONES, \%RULES, $YEAR); + TZ::ParseFile("$DATA_DIR/$_", \%ZONES, \%RULES, \%LINKS, $YEAR); } print "done\n"; + # Add country data from zone.tab + TZ::ParseZoneTab("$DATA_DIR/zone.tab", \%ZONES, \%LINKS); + + # We'll also read the iso3166.tab file here. We don't really need + # this except for documentation purposes (in generated files) + # and for the HTML file. + local(*FILE); + open(FILE, "$DATA_DIR/iso3166.tab") or die "Can't open $DATA_DIR/iso3166.tab"; + while () { + s/\#.*//; + next unless (/\S/); + s/\s+$//; + if (/^([A-Z]{2})\s+(\S.*)/) { + $COUNTRY_CODES{$1} = $2; # Map from code to country name + } else { + print STDERR "Ignoring $DATA_DIR/iso3166.tab line: $_"; + } + } + close(FILE); + TZ::Postprocess(\%ZONES, \%RULES); - my $aliases = incorporateAliases($TZ_ALIAS, \%ZONES); + my $aliases = incorporateAliases($TZ_ALIAS, \%ZONES, \%LINKS); print "Read ", scalar keys %ZONES, " current zones and ", @@ -247,27 +308,12 @@ sub main { $ZONES{GMT} = \%GMT; } - # Validate names and count total size - my $NAME_SIZE = 0; + # Validate names foreach my $z (keys %ZONES) { # Make sure zone IDs only contain invariant chars assertInvariantChars($z); - - $NAME_SIZE += 1 + length($z); } - # Find the maximum number of zones with the same value of - # gmtOffset. - my %perOffset; # Hash of offset -> count - foreach my $z (keys %ZONES) { - # Use TZ::ParseOffset to normalize values - probably unnecessary - ++$perOffset{TZ::ParseOffset($ZONES{$z}->{gmtoff})}; - } - my $maxPerOffset = 0; - foreach (values %perOffset) { - $maxPerOffset = $_ if ($_ > $maxPerOffset); - } - # Create the offset index table, that includes the zones # for each offset and the default zone for each offset. # This is a hash{$name -> array ref}. Element [0] of @@ -276,14 +322,10 @@ sub main { my $offsetIndex = createOffsetIndex(\%ZONES, $TZ_DEFAULT); # Group zones into equivalency groups - my $maxPerEquiv = 0; TZ::FormZoneEquivalencyGroups(\%ZONES, \%RULES, \@EQUIV); print "Equivalency groups (including unique zones): ", scalar @EQUIV, "\n"; - foreach my $eg (@EQUIV) { - $maxPerEquiv = @$eg if (@$eg > $maxPerEquiv); - } # Sort equivalency table first by GMT offset, then by # alphabetic order of encoded rule string. @@ -306,133 +348,55 @@ sub main { $ZONE_ID_TO_INDEX{$z} = $i++; } - open(OUT,">$OUT") or die "Can't open $OUT for writing: $!"; + # Create the country -> zone array hash + # This hash has the form: + # $COUNTRIES{'US'}->{zones}->[13] == "America/Los_Angeles" + # $COUNTRIES{'US'}->{intcode} == 658 - ############################################################ - # EMIT HEADER - ############################################################ - # Zone data version - print OUT "#--- Header --- Generated by tz.pl\n"; - print OUT $TZ_TXT_VERSION, " # format version number of this file\n"; - print OUT $VERSION_YEAR, " # ($RAW_VERSION) version of Olson zone\n"; - print OUT $VERSION_SUFFIX, " # data from $URL\n"; - print OUT scalar keys %ZONES, " # total zone count\n"; - # The following counts are all used by gentz during its parse - # of the tz.txt file and creation of the tz.dat file, even - # if they don't show up in the tz.dat file header. For example, - # gentz needs the maxPerOffset to preallocate the offset index - # entries. It needs the NAME_SIZE to allocate the big buffer - # that will receive all the names. - print OUT scalar @EQUIV, " # equivalency groups count\n"; - print OUT $maxPerOffset, " # max zones with same gmtOffset\n"; - print OUT $maxPerEquiv, " # max zones in an equivalency group\n"; - print OUT $NAME_SIZE, " # length of name table in bytes\n"; - print OUT $END_MARKER, "\n\n"; - - ############################################################ - # EMIT ZONE TABLE - ############################################################ - # Output the name table, followed by 'end' keyword - print OUT "#--- Zone table ---\n"; - print OUT "#| equiv_index,name\n"; - print OUT scalar keys %ZONES, " # count of zones to follow\n"; - - # IMPORTANT: This sort must correspond to the sort - # order of UnicodeString::compare. That - # is, it must be a plain sort. - foreach my $z (sort keys %ZONES) { - # Make sure zone IDs only contain invariant chars - assertInvariantChars($z); - - print OUT equivIndexOf($z, \@EQUIV), ',', $z, "\n"; - } - print OUT $END_MARKER, "\n\n"; - - ############################################################ - # EMIT EQUIVALENCY TABLE - ############################################################ - print OUT "#--- Equivalency table ---\n"; - print OUT "#| ('s'|'d'),zone_spec,id_count,id_list\n"; - print OUT scalar @EQUIV, " # count of equivalency groups to follow\n"; - $i = 0; - foreach my $aref (@EQUIV) { - # $aref is an array ref; the array is full of zone IDs - # Use the ID of the first array element - my $z = $aref->[0]; - - # Output either 's' or 'd' to indicate standard or DST - my $isStd = ($ZONES{$z}->{rule} eq $TZ::STANDARD); - print OUT $isStd ? 's,' : 'd,'; - - # Format the zone - my ($spec, $notes) = formatZone($z, $ZONES{$z}, \%RULES); - - # Now add the equivalency list - push @$spec, scalar @$aref; - push @$notes, "["; - my $min = -1; - foreach $z (@$aref) { - my $index = $ZONE_ID_TO_INDEX{$z}; - # Make sure they are in order - die("Unsorted equiv table indices") if ($index <= $min); - $min = $index; - push @$spec, $index; - push @$notes, $z; - } - push @$notes, "]"; - - unshift @$notes, $i++; # Insert index of this group at front - print OUT join($SEP, @$spec) . " # " . join(' ', @$notes), "\n"; - } - print OUT $END_MARKER, "\n\n"; - - ############################################################ - # EMIT INDEX BY GMT OFFSET - ############################################################ - # Create a hash mapping zone name -> integer, from 0..n-1. - # Create an array mapping zone number -> name. - my %zoneNumber; - my @zoneName; - $i = 0; + # Some zones are not affiliated with any country (e.g., UTC). We + # use a fake country code for these, chosen to precede any real + # country code. 'A' or 'AA' work. + my $NONE = 'A'; foreach (sort keys %ZONES) { - $zoneName[$i] = $_; - $zoneNumber{$_} = $i++; + my $country = $ZONES{$_}->{country}; + $country = $NONE unless ($country); + push @{$COUNTRIES{$country}->{zones}}, $_; + } + foreach my $country (keys %COUNTRIES) { + # Compute the int code, which is just a numerical + # rep. of the two letters. Use 0 to represent no + # country; this MUST BE CHANGED if AA ever becomes + # a valid country code. + my $intcode = 0; + if ($country ne $NONE) { + if ($country =~ /^([A-Z])([A-Z])$/) { + $intcode = ((ord($1) - ord('A')) << 5) | + (ord($2) - ord('A')); + } else { + die "Can't parse country code $country"; + } + } + $COUNTRIES{$country}->{intcode} = $intcode; } - # Emit offset index - print OUT "#--- Offset index ---\n"; - print OUT "#| gmt_offset,default_id,id_count,id_list\n"; - print OUT scalar keys %{$offsetIndex}, " # index by offset entries to follow\n"; - foreach (sort {$a <=> $b} keys %{$offsetIndex}) { - my $aref = $offsetIndex->{$_}; - my $def = $aref->[0]; - # Make a slice of 1..n - my @b = @{$aref}[1..$#{$aref}]; - print OUT - $_, ",", $zoneNumber{$def}, ",", - scalar @b, ",", - join(",", map($zoneNumber{$_}, @b)), - " # ", formatOffset($_), " d=", $def, " ", - join(" ", @b), "\n"; + # Emit the text file + if ($TXT_FILE) { + emitText($TXT_FILE, \%ZONES, \%RULES, \@EQUIV, $offsetIndex, $aliases, + \%COUNTRIES); + print "$TXT_FILE written.\n"; } - print OUT $END_MARKER, "\n"; - - ############################################################ - # END - ############################################################ - close(OUT); - print "$OUT written.\n"; - # Emit the Java file if ($JAVA_FILE) { - emitJava($JAVA_FILE, \%ZONES, \%RULES, \@EQUIV, $offsetIndex, $aliases); + emitJava($JAVA_FILE, \%ZONES, \%RULES, \@EQUIV, $offsetIndex, $aliases, + \%COUNTRIES); print "$JAVA_FILE written.\n"; } # Emit the HTML file if ($HTML_FILE) { - emitHTML($HTML_FILE, \%ZONES, \%RULES, \@EQUIV, $offsetIndex, $aliases); + emitHTML($HTML_FILE, \%ZONES, \%RULES, \@EQUIV, $offsetIndex, $aliases, + \%COUNTRIES); print "$HTML_FILE written.\n"; } @@ -580,6 +544,183 @@ sub isDefault { return ($aref->[0] eq $name); } +# Emit a text file that contains data for the system time zones. +# Param: File name +# Param: ref to zone hash +# Param: ref to rule hash +# Param: ref to equiv table +# Param: ref to offset index +# Param: ref to alias hash +sub emitText { + my $file = shift; + my $zones = shift; + my $rules = shift; + my $equiv = shift; + my $offsetIndex = shift; + my $aliases = shift; + my $countries = shift; + + # Find the maximum number of zones with the same value of + # gmtOffset. + my %perOffset; # Hash of offset -> count + foreach my $z (keys %$zones) { + # Use TZ::ParseOffset to normalize values - probably unnecessary + ++$perOffset{TZ::ParseOffset($zones->{$z}->{gmtoff})}; + } + my $maxPerOffset = 0; + foreach (values %perOffset) { + $maxPerOffset = $_ if ($_ > $maxPerOffset); + } + + # Count maximum number of zones per equivalency group + my $maxPerEquiv = 0; + foreach my $eg (@$equiv) { + $maxPerEquiv = @$eg if (@$eg > $maxPerEquiv); + } + + # Count total name size + my $name_size = 0; + foreach my $z (keys %$zones) { + $name_size += 1 + length($z); + } + + local(*OUT); + open(OUT,">$file") or die "Can't open $file for writing: $!"; + + ############################################################ + # EMIT HEADER + ############################################################ + # Zone data version + print OUT "#--- Header --- Generated by tz.pl\n"; + print OUT $TZ_TXT_VERSION, " # format version number of this file\n"; + print OUT $VERSION_YEAR, " # ($RAW_VERSION) version of Olson zone\n"; + print OUT $VERSION_SUFFIX, " # data from $URL\n"; + print OUT scalar keys %$zones, " # total zone count\n"; + # The following counts are all used by gentz during its parse + # of the tz.txt file and creation of the tz.dat file, even + # if they don't show up in the tz.dat file header. For example, + # gentz needs the maxPerOffset to preallocate the offset index + # entries. It needs the $name_size to allocate the big buffer + # that will receive all the names. + print OUT scalar @$equiv, " # equivalency groups count\n"; + print OUT $maxPerOffset, " # max zones with same gmtOffset\n"; + print OUT $maxPerEquiv, " # max zones in an equivalency group\n"; + print OUT $name_size, " # length of name table in bytes\n"; + print OUT $END_MARKER, "\n\n"; + + ############################################################ + # EMIT ZONE TABLE + ############################################################ + # Output the name table, followed by 'end' keyword + print OUT "#--- Zone table ---\n"; + print OUT "#| equiv_index,name\n"; + print OUT scalar keys %$zones, " # count of zones to follow\n"; + + # IMPORTANT: This sort must correspond to the sort + # order of UnicodeString::compare. That + # is, it must be a plain sort. + foreach my $z (sort keys %$zones) { + # Make sure zone IDs only contain invariant chars + assertInvariantChars($z); + + print OUT equivIndexOf($z, $equiv), ',', $z, "\n"; + } + print OUT $END_MARKER, "\n\n"; + + ############################################################ + # EMIT EQUIVALENCY TABLE + ############################################################ + print OUT "#--- Equivalency table ---\n"; + print OUT "#| ('s'|'d'),zone_spec,id_count,id_list\n"; + print OUT scalar @$equiv, " # count of equivalency groups to follow\n"; + my $i = 0; + foreach my $aref (@$equiv) { + # $aref is an array ref; the array is full of zone IDs + # Use the ID of the first array element + my $z = $aref->[0]; + + # Output either 's' or 'd' to indicate standard or DST + my $isStd = ($zones->{$z}->{rule} eq $TZ::STANDARD); + print OUT $isStd ? 's,' : 'd,'; + + # Format the zone + my ($spec, $notes) = formatZone($z, $zones->{$z}, $rules); + + # Now add the equivalency list + push @$spec, scalar @$aref; + push @$notes, "["; + my $min = -1; + foreach $z (@$aref) { + my $index = $ZONE_ID_TO_INDEX{$z}; + # Make sure they are in order + die("Unsorted equiv table indices") if ($index <= $min); + $min = $index; + push @$spec, $index; + push @$notes, $z; + } + push @$notes, "]"; + + unshift @$notes, $i++; # Insert index of this group at front + print OUT join($SEP, @$spec) . " # " . join(' ', @$notes), "\n"; + } + print OUT $END_MARKER, "\n\n"; + + ############################################################ + # EMIT INDEX BY GMT OFFSET + ############################################################ + # Create a hash mapping zone name -> integer, from 0..n-1. + # Create an array mapping zone number -> name. + my %zoneNumber; + my @zoneName; + $i = 0; + foreach (sort keys %$zones) { + $zoneName[$i] = $_; + $zoneNumber{$_} = $i++; + } + + # Emit offset index + print OUT "#--- Offset INDEX ---\n"; + print OUT "#| gmt_offset,default_id,id_count,id_list\n"; + print OUT scalar keys %{$offsetIndex}, " # index by offset entries to follow\n"; + foreach (sort {$a <=> $b} keys %{$offsetIndex}) { + my $aref = $offsetIndex->{$_}; + my $def = $aref->[0]; + # Make a slice of 1..n + my @b = @{$aref}[1..$#{$aref}]; + print OUT + $_, ",", $zoneNumber{$def}, ",", + scalar @b, ",", + join(",", map($zoneNumber{$_}, @b)), + " # ", formatOffset($_), " d=", $def, " ", + join(" ", @b), "\n"; + } + + print OUT $END_MARKER, "\n\n"; + + ############################################################ + # EMIT INDEX BY COUNTRY + ############################################################ + print OUT "#--- Country INDEX ---\n"; + print OUT "#| country_int_code,id_count,id_list\n"; + print OUT scalar keys %$countries, " # index by country entries to follow\n"; + foreach my $country (sort keys %$countries) { + my $intcode = $countries->{$country}->{intcode}; + my $aref = $countries->{$country}->{zones}; + print OUT + $intcode, ",", scalar @$aref, ",", + join(",", map($zoneNumber{$_}, @$aref)), " # ", + ($intcode ? ($country . " (" . $COUNTRY_CODES{$country} . ") ") : "(None) "), + join(" ", @$aref), "\n"; + } + + print OUT $END_MARKER, "\n"; + + ############################################################ + # END + ############################################################ + close(OUT); +} + # Emit a Java file that contains data for the system time zones. # Param: File name # Param: ref to zone hash @@ -594,6 +735,7 @@ sub emitJava { my $equiv = shift; my $offsetIndex = shift; my $aliases = shift; + my $countries = shift; my $_indent = " "; @@ -697,6 +839,23 @@ sub emitJava { ", // " . formatOffset($_) . " d=" . $def . " " . join(" ", @b) . "\n"; } + + ############################################################ + # Index by country + my $_INDEX_BY_COUNTRY; + foreach my $country (sort keys %$countries) { + my $intcode = $countries->{$country}->{intcode}; + my $aref = $countries->{$country}->{zones}; + # Emit int code (n1*32 + n0), #of zones, + # and list of zones. + $_INDEX_BY_COUNTRY .= + $_indent . $intcode . ", " . + scalar(@$aref) . ", " . + join(", ", map($zoneNumber{$_}, @$aref)) . ", // " . + ($intcode ? ($country . " (" . $COUNTRY_CODES{$country} . ")") : "(None)") . ": " . + join(" ", @$aref) . + "\n"; + } ############################################################ # BEGIN JAVA TEMPLATE @@ -755,6 +914,15 @@ public class tz { System.out.println(Utility.formatForSource(Utility.arrayToRLEString(INDEX_BY_OFFSET))); System.out.println(" ;\\n"); + System.out.println(" /**"); + System.out.println(" * RLE encoded form of INDEX_BY_COUNTRY."); + System.out.println(" * \@see com.ibm.util.Utility.RLEStringToIntArray"); + System.out.println(" * >> GENERATED DATA: DO NOT EDIT <<"); + System.out.println(" */"); + System.out.println(" static final String INDEX_BY_COUNTRY_RLE ="); + System.out.println(Utility.formatForSource(Utility.arrayToRLEString(INDEX_BY_COUNTRY))); + System.out.println(" ;\\n"); + System.out.println(" // END GENERATED SOURCE CODE"); } @@ -766,7 +934,7 @@ $_IDS $_DATA }; - static int[] INDEX_BY_NAME_ARRAY = { // not final! + static final int[] INDEX_BY_NAME_ARRAY = { $_INDEX_BY_NAME }; @@ -774,6 +942,10 @@ $_INDEX_BY_NAME // gmt_offset,default_id,id_count,id_list $_INDEX_BY_OFFSET }; + + static final int[] INDEX_BY_COUNTRY = { +$_INDEX_BY_COUNTRY + }; } END ############################################################ @@ -799,6 +971,7 @@ sub emitHTML { my $equiv = shift; my $offsetIndex = shift; my $aliases = shift; + my $countries = shift; # These are variables for the template my $_count = scalar keys %{$zones}; @@ -856,6 +1029,23 @@ sub emitHTML { } $_equivTable .= "\n"; + # Build country table + my $_countryTable; + $_countryTable .= "

\n"; + $_countryTable .= "\n"; + $_countryTable .= "\n"; + + foreach my $country (sort keys %$countries) { + $_countryTable .= + "" . "\n"; + } + $_countryTable .= "
CountryZones


" . + (($country ne 'A') ? ($country . " (" . $COUNTRY_CODES{$country} . ")") : "(None)") . + "" . + join(", ", map("$_", @{$countries->{$country}->{zones}})) . + #join(", ", @{$countries->{$country}->{zones}}) . + "
\n"; + # Time stamp my $_timeStamp = localtime; @@ -1010,6 +1200,15 @@ not at runtime, so the runtime cost to lookup the equivalency group of a given zone is negligible.

$_equivTable +
+ +

Time Zones by Country

+ +

ICU captures and exports the country data from the Olson database. +The country code is the ISO 3166 two-letter code. Some zones have no +associated country; these are listed under the entry "(None)". + +$_countryTable END @@ -1105,10 +1304,12 @@ sub emitHTMLRule { # sub should be called AFTER all standard zones have been read in. # Param: File name of alias list # Param: Ref to zone hash +# Param: Ref to LINK hash # Return: Ref to hash of {alias name -> zone name} sub incorporateAliases { my $aliasFile = shift; my $zones = shift; + my $links = shift; my $n = 0; my %hash; local *IN; @@ -1126,6 +1327,11 @@ sub incorporateAliases { die "Bad alias in $aliasFile: $alias maps to the nonexistent " . "zone $original. Please fix this entry in the alias table.\n"; } + if (exists $links->{$alias} && + $links->{$alias} ne $original) { + print STDERR "Warning: Alias $alias for $original exists as link for ", + $links->{$alias}, "\n"; + } # Create the alias! $zones->{$alias} = $zones->{$original}; $hash{$alias} = $original; diff --git a/icu4c/source/tools/gentz/tzparse.pm b/icu4c/source/tools/gentz/tzparse.pm index 4144b40fd63..40efbeff02f 100644 --- a/icu4c/source/tools/gentz/tzparse.pm +++ b/icu4c/source/tools/gentz/tzparse.pm @@ -9,8 +9,8 @@ # Author: Alan Liu ###################################################################### # Usage: -# Call ParseFile for each file to be imported. Then call Postprocess -# to remove unused rules and links. +# Call ParseFile for each file to be imported. Then call ParseZoneTab +# to add country data. Then call Postprocess to remove unused rules. package TZ; use strict; @@ -21,26 +21,87 @@ require 'dumpvar.pl'; @ISA = qw(Exporter); @EXPORT = qw(ParseFile Postprocess + ParseZoneTab ); -$VERSION = '0.1'; +$VERSION = '0.2'; $STANDARD = '-'; # Name of the Standard Time rule +###################################################################### +# Read the tzdata zone.tab file and add a {country} field to zones +# in the given hash. +# Param: File name (

/zone.tab) +# Param: Ref to hash of zones +# Param: Ref to hash of links +sub ParseZoneTab { + my ($FILE, $ZONES, $LINKS) = @_; + + my %linkEntries; + + local(*FILE); + open(FILE,"<$FILE") or confess "Can't open $FILE: $!"; + while () { + # Handle comments + s/\#.*//; + next if (!/\S/); + + if (/^\s*([A-Z]{2})\s+[-+0-9]+\s+(\S+)/) { + my ($country, $zone) = ($1, $2); + if (exists $ZONES->{$zone}) { + $ZONES->{$zone}->{country} = $country; + } elsif (exists $LINKS->{$zone}) { + # We have a country mapping for a zone that isn't in + # our hash. This means it is a link entry. Save this + # then handle it below. + $linkEntries{$zone} = $country; + } else { + print STDERR "Nonexistent zone $zone in $FILE\n"; + } + } else { + confess "Can't parse line \"$_\" of $FILE"; + } + } + close(FILE); + + # Now that we have mapped all of the zones in %$ZONES (except + # those without country affiliations), process the link entries. + # For those zones in the table that differ by country from their + # source zone, instantiate a new zone in the new country. An + # example is Europe/Vatican, which is linked to Europe/Rome. If + # we don't instantiate it, we have nothing for Vatican City. + # Another example is America/Shiprock, which links to + # America/Denver. These are identical and both in the US, so we + # don't instantiate America/Shiprock. + foreach my $zone (keys %linkEntries) { + my $country = $linkEntries{$zone}; + my $linkZone = $LINKS->{$zone}; + my $linkCountry = $ZONES->{$linkZone}->{country}; + if ($linkCountry ne $country) { + # print "Cloning $zone ($country) from $linkZone ($linkCountry)\n"; + _CloneZone($ZONES, $LINKS->{$zone}, $zone); + $ZONES->{$zone}->{country} = $country; + } + } +} + ###################################################################### # Param: File name # Param: Ref to hash of zones # Param: Ref to hash of rules +# Parma: Ref to hash of links # Param: Current year sub ParseFile { - my ($FILE, $ZONES, $RULES, $YEAR) = @_; + my ($FILE, $ZONES, $RULES, $LINKS, $YEAR) = @_; local(*FILE); open(FILE,"<$FILE") or confess "Can't open $FILE: $!"; my $zone; # Current zone my $badLineCount = 0; while () { + # Handle comments and blanks s/\#.*//; next if (!/\S/); + #|# Zone NAME GMTOFF RULES FORMAT [UNTIL] #|Zone America/Montreal -4:54:16 - LMT 1884 #| -5:00 Mont E%sT @@ -160,11 +221,16 @@ sub ParseFile { #|Link America/Indianapolis EST #|Link America/Phoenix MST #|Link Pacific/Honolulu HST + # + # There are also links for country-specific zones. + # These are zones the differ only in that they belong + # to a different country. E.g., + #|Link Europe/Rome Europe/Vatican + #|Link Europe/Rome Europe/San_Marino if (/^link\s+(\S+)\s+(\S+)/i) { - # We currently only record a single link -- if there - # are more than one, we should modify this. my ($from, $to) = ($1, $2); - $ZONES->{$from}->{link} = $to; + # Record all links in $%LINKS + $LINKS->{$to} = $from; } else { print STDERR "Can't parse in $FILE: $_"; ++$badLineCount; @@ -193,17 +259,18 @@ sub Postprocess { my ($ZONES, $RULES) = @_; my %ruleInUse; - # Eliminate zone links that have no corresponding zone - foreach (keys %$ZONES) { - if (exists $ZONES->{$_}->{link} && !exists $ZONES->{$_}->{rule}) { - if (0) { - print STDERR - "Deleting link from historical/nonexistent zone: ", - $_, " -> ", $ZONES->{$_}->{link}, "\n"; - } - delete $ZONES->{$_}; - } - } +# We no longer store links in the zone hash, so we don't need to do this. +# # Eliminate zone links that have no corresponding zone +# foreach (keys %$ZONES) { +# if (exists $ZONES->{$_}->{link} && !exists $ZONES->{$_}->{rule}) { +# if (0) { +# print STDERR +# "Deleting link from historical/nonexistent zone: ", +# $_, " -> ", $ZONES->{$_}->{link}, "\n"; +# } +# delete $ZONES->{$_}; +# } +# } # Check that each zone has a corresponding rule. At the same # time, build up a hash that marks each rule that is in use. @@ -244,3 +311,17 @@ sub Postprocess { } } } + +###################################################################### +# Create a clone of the zone $oldID named $newID in the hash $ZONES. +# Param: ref to hash of zones +# Param: ID of zone to clone +# Param: ID of new zone +sub _CloneZone { + my $ZONES = shift; + my $oldID = shift; + my $newID = shift; + for my $field (keys %{$ZONES->{$oldID}}) { + $ZONES->{$newID}->{$field} = $ZONES->{$oldID}->{$field}; + } +} diff --git a/icu4c/source/tools/gentz/tzutil.pm b/icu4c/source/tools/gentz/tzutil.pm index 1ea2bca5d06..d44525be63c 100644 --- a/icu4c/source/tools/gentz/tzutil.pm +++ b/icu4c/source/tools/gentz/tzutil.pm @@ -20,12 +20,14 @@ #|Zone America/Montreal -4:54:16 - LMT 1884 #| -5:00 Mont E%sT -# Optionally, a zone may also have the key: -# {link} An old name for this zone, e.g. "HST" (for Pacific/Honolulu) # Links come from the file entries: #|# Link LINK-FROM LINK-TO #|Link America/New_York EST5EDT #|Link America/Chicago CST6CDT +# Link data is _not_ stored in the zone hash. Instead, links are +# kept in a separate hash and resolved after all zones are defined. +# In general, we ignore links, but they provide critical data when +# generating country information. # The name of the zone itself is not kept in the zone object. # Instead, zones are kept in a big hash. The keys are the names; the @@ -36,7 +38,6 @@ # Example: $ZONES->{"America/Los_Angeles"} = # 'format' => 'P%sT' # 'gmtoff' => '-8:00' -# 'link' => 'US/Pacific-New' # 'rule' => 'US' # 'until' => '' @@ -227,7 +228,7 @@ sub FormZoneEquivalencyGroups { sub ParseOffset { local $_ = shift; if (/^(-)?(\d{1,2})(:(\d\d))?(:(\d\d))?$/) { - # 1 2 4 6 + # 1 2 3 4 5 6 my $a = (($2 * 60) + (defined $4?$4:0)) * 60 + (defined $6?$6:0); $a = -$a if (defined $1 && $1 eq '-'); return $a;