From 1174f78c2b45c97e55a40eaa80c40a5cc56aced0 Mon Sep 17 00:00:00 2001 From: Alan Liu Date: Wed, 10 Sep 2003 17:34:55 +0000 Subject: [PATCH] ICU-2966 check in Apple's fixes for reference (goldsmit) X-SVN-Rev: 13055 --- icu4c/source/data/misc/timezone.txt | 74 ++++++++++++++--------------- icu4c/source/tools/gentz/tz.pl | 32 +++++++++---- icu4c/source/tools/gentz/tzparse.pm | 5 +- 3 files changed, 64 insertions(+), 47 deletions(-) diff --git a/icu4c/source/data/misc/timezone.txt b/icu4c/source/data/misc/timezone.txt index f1c12c206b1..1943d251f57 100644 --- a/icu4c/source/data/misc/timezone.txt +++ b/icu4c/source/data/misc/timezone.txt @@ -19,7 +19,7 @@ end 97,ACT 101,AET 37,AGT -58,ART +57,ART 7,AST 45,Africa/Abidjan 48,Africa/Accra @@ -33,7 +33,7 @@ end 54,Africa/Blantyre 49,Africa/Brazzaville 54,Africa/Bujumbura -58,Africa/Cairo +57,Africa/Cairo 45,Africa/Casablanca 50,Africa/Ceuta 45,Africa/Conakry @@ -221,14 +221,14 @@ end 93,Asia/Dili 69,Asia/Dubai 74,Asia/Dushanbe -57,Asia/Gaza +56,Asia/Gaza 88,Asia/Harbin 92,Asia/Hong_Kong 84,Asia/Hovd 91,Asia/Irkutsk 83,Asia/Jakarta 93,Asia/Jayapura -56,Asia/Jerusalem +58,Asia/Jerusalem 73,Asia/Kabul 111,Asia/Kamchatka 75,Asia/Karachi @@ -464,7 +464,7 @@ s,-43200,1,296 # 0 GMT-12 [ Etc/GMT+12 ] s,-39600,6,295,388,396,416,418,421 # 1 GMT-11 [ Etc/GMT+11 MIT Pacific/Apia Pacific/Midway Pacific/Niue Pacific/Pago_Pago ] s,-36000,6,294,372,402,409,410,428 # 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,426 # 4 GMT-10:00 Oct lastSun 0:00 Mar Sun>=1 0:00 0:30 [ Pacific/Rarotonga ] +s,-36000,1,426 # 4 GMT-10:00 [ Pacific/Rarotonga ] s,-34200,1,415 # 5 GMT-9:30 [ Pacific/Marquesas ] s,-32400,2,304,406 # 6 GMT-9 [ Etc/GMT+9 Pacific/Gambier ] d,-32400,3,1,-1,120,w,9,-1,1,120,w,60,5,4,58,113,136,170 # 7 GMT-9:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ AST America/Anchorage America/Juneau America/Nome America/Yakutat ] @@ -475,22 +475,22 @@ d,-25200,3,1,-1,120,w,9,-1,1,120,w,60,9,69,71,78,86,89,109,123,171,389 # 11 GMT- s,-21600,5,120,150,161,301,405 # 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,10,72,77,125,126,127,129,138,147,148,286 # 13 GMT-6:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Cancun America/Chicago America/Menominee America/Merida America/Mexico_City America/Monterrey America/North_Dakota/Center America/Rainy_River America/Rankin_Inlet CST ] d,-21600,3,1,-1,120,w,9,-1,1,120,s,60,1,169 # 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,99 # 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,91,162 # 18 GMT-6:00 May Sun>=1 0:00 Sep lastSun 0:00 1:00 [ America/El_Salvador America/Tegucigalpa ] +s,-21600,1,66 # 15 GMT-6:00 [ America/Belize ] +s,-21600,1,80 # 16 GMT-6:00 [ America/Costa_Rica ] +s,-21600,1,99 # 17 GMT-6:00 [ America/Guatemala ] +s,-21600,2,91,162 # 18 GMT-6:00 [ America/El_Salvador America/Tegucigalpa ] d,-21600,9,9,-1,240,u,2,9,-1,180,u,60,1,399 # 19 GMT-6:00 Oct Sun>=9 4:00u Mar Sun>=9 3:00u 1:00 [ Pacific/Easter ] s,-18000,12,76,90,100,105,106,107,108,111,139,151,300,373 # 20 GMT-5:00 [ America/Cayman America/Eirunepe America/Guayaquil America/Indiana/Knox America/Indiana/Marengo America/Indiana/Vevay America/Indianapolis America/Jamaica America/Panama America/Rio_Branco Etc/GMT+5 IET ] d,-18000,3,1,-1,0,w,9,-1,1,0,w,60,1,96 # 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,103 # 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,143 # 23 GMT-5:00 Apr Sun>=1 1:00s Oct lastSun 1:00s 1:00 [ America/Port-au-Prince ] +s,-18000,1,143 # 23 GMT-5:00 [ America/Port-au-Prince ] d,-18000,3,1,-1,120,w,9,-1,1,120,w,60,11,87,110,114,118,131,133,134,135,140,164,291 # 24 GMT-5:00 Apr Sun>=1 2:00 Oct lastSun 2:00 1:00 [ America/Detroit America/Iqaluit America/Kentucky/Monticello America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Pangnirtung America/Thunder_Bay EST ] -d,-18000,0,1,0,0,w,3,1,0,0,w,60,1,116 # 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,-18000,1,116 # 25 GMT-5:00 [ America/Lima ] +s,-18000,1,68 # 26 GMT-5:00 [ America/Bogota ] s,-14400,25,59,60,62,67,73,82,88,97,98,101,115,121,122,132,144,145,146,153,157,158,159,160,166,299,394 # 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,95 # 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,93,102,163,261 # 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 ] +s,-14400,1,64 # 30 GMT-4:00 [ America/Barbados ] d,-14400,9,8,-1,0,w,1,15,-1,0,w,60,1,81 # 31 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,1,177 # 32 GMT-4:00 Oct Sun>=9 0:00 Mar Sun>=9 0:00 1:00 [ Antarctica/Palmer ] d,-14400,9,9,-1,240,u,2,9,-1,180,u,60,1,152 # 33 GMT-4:00 Oct Sun>=9 4:00u Mar Sun>=9 3:00u 1:00 [ America/Santiago ] @@ -500,42 +500,42 @@ d,-12600,3,1,-1,1,w,9,-1,1,1,w,60,2,156,285 # 36 GMT-3:30 Apr Sun>=1 0:01 Oct la s,-10800,14,2,65,70,74,75,79,92,112,119,124,141,149,178,298 # 37 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 Antarctica/Rothera Etc/GMT+3 ] d,-10800,3,1,-1,120,w,9,-1,1,120,w,60,1,128 # 38 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,94 # 39 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,130 # 40 GMT-3:00 Oct 18 0:00 Feb 28 0:00 1:00 [ America/Montevideo ] +s,-10800,1,130 # 40 GMT-3:00 [ America/Montevideo ] d,-10800,9,8,-1,0,w,1,15,-1,0,w,60,3,61,154,281 # 41 GMT-3:00 Oct Sun>=8 0:00 Feb Sun>=15 0:00 1:00 [ America/Araguaina America/Sao_Paulo BET ] s,-7200,3,137,268,297 # 42 GMT-2:00 [ America/Noronha Atlantic/South_Georgia Etc/GMT+2 ] s,-3600,2,263,293 # 43 GMT-1:00 [ Atlantic/Cape_Verde Etc/GMT+1 ] d,-3600,2,-1,1,60,u,9,-1,1,60,u,60,2,155,260 # 44 GMT-1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ America/Scoresbysund Atlantic/Azores ] s,0,22,5,10,12,13,18,20,21,25,36,45,49,50,52,53,83,267,269,292,319,320,371,436 # 45 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 America/Danmarkshavn 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 # 46 GMT+0:00 Jun 1 0:00 Sep 1 0:00 1:00 [ Africa/Freetown ] +s,0,1,26 # 46 GMT+0:00 [ Africa/Freetown ] d,0,2,-1,1,60,u,9,-1,1,60,u,60,8,262,264,266,324,333,339,341,438 # 47 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 # 48 GMT+0:00 Sep 1 0:00 Dec 31 0:00 0:20 [ Africa/Accra ] +s,0,1,6 # 48 GMT+0:00 [ Africa/Accra ] s,3600,13,8,11,15,24,33,34,35,37,40,47,48,51,305 # 49 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,33,19,181,265,289,321,322,325,326,327,328,330,332,334,340,342,343,344,346,348,349,350,352,354,355,357,359,361,363,364,365,367,368,370 # 50 GMT+1:00 Mar lastSun 1:00u Oct lastSun 1:00u 1:00 [ Africa/Ceuta Arctic/Longyearbyen Atlantic/Jan_Mayen 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,284,387 # 51 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 # 52 GMT+1:00 May 1 0:00s Sep lastSun 0:00s 1:00 [ Africa/Tunis ] +s,3600,1,55 # 52 GMT+1:00 [ Africa/Tunis ] d,3600,8,1,-1,120,w,3,1,-1,120,w,60,1,56 # 53 GMT+1:00 Sep Sun>=1 2:00 Apr Sun>=1 2:00 1:00 [ Africa/Windhoek ] s,7200,13,14,16,27,28,32,38,39,41,42,43,54,283,311 # 54 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 ] d,7200,3,1,0,0,w,9,1,0,0,w,60,1,200 # 55 GMT+2:00 Apr 1 0:00 Oct 1 0:00 1:00 [ Asia/Damascus ] -d,7200,3,1,0,60,w,9,3,0,60,w,60,1,212 # 56 GMT+2:00 Apr 1 1:00 Oct 3 1:00 1:00 [ Asia/Jerusalem ] -d,7200,3,15,-6,0,w,9,15,-6,0,w,60,1,205 # 57 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 # 58 GMT+2:00 Apr lastFri 0:00s Sep lastThu 23:00s 1:00 [ ART Africa/Cairo ] +d,7200,3,15,-6,0,w,9,15,-6,0,w,60,1,205 # 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,28,0,60,w,9,3,0,60,w,60,1,212 # 58 GMT+2:00 Mar 28 1:00 Oct 3 1:00 1:00 [ Asia/Jerusalem ] d,7200,2,-1,1,0,w,9,-1,1,0,w,60,1,193 # 59 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,15,227,290,323,329,331,335,336,338,351,356,358,360,362,366,369 # 60 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/Riga Europe/Simferopol Europe/Sofia Europe/Tallinn Europe/Uzhgorod Europe/Vilnius Europe/Zaporozhye ] d,7200,2,-1,1,120,s,9,-1,1,120,s,60,2,337,345 # 61 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,184 # 62 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 # 63 GMT+2:00 Sep Sun>=15 2:00 Mar Sun>=15 2:00 1:00 [ Africa/Johannesburg ] +s,7200,1,29 # 63 GMT+2:00 [ Africa/Johannesburg ] s,10800,19,7,9,22,23,30,31,44,46,179,182,190,221,234,237,288,312,375,379,384 # 64 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,189 # 65 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,1,347 # 66 GMT+3:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Europe/Moscow ] s,11224,3,238,239,240 # 67 GMT+3:07:04 [ Asia/Riyadh87 Asia/Riyadh88 Asia/Riyadh89 ] -d,12600,2,21,0,0,w,8,22,0,0,w,60,1,250 # 68 GMT+3:30 Mar 21 0:00 Sep 22 0:00 1:00 [ Asia/Tehran ] +d,12600,2,22,0,0,w,8,22,0,0,w,60,1,250 # 68 GMT+3:30 Mar 22 0:00 Sep 22 0:00 1:00 [ Asia/Tehran ] s,14400,6,203,226,313,381,383,385 # 69 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,1,249 # 70 GMT+4:00 Mar lastSun 0:00 Oct lastSun 0:00 1:00 [ Asia/Tbilisi ] d,14400,2,-1,1,60,w,9,-1,1,60,w,60,1,191 # 71 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,5,186,230,259,353,390 # 72 GMT+4:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Aqtau Asia/Oral Asia/Yerevan Europe/Samara NET ] s,16200,1,213 # 73 GMT+4:30 [ Asia/Kabul ] s,18000,7,188,204,243,248,314,380,382 # 74 GMT+5:00 [ Asia/Ashgabat Asia/Dushanbe Asia/Samarkand Asia/Tashkent Etc/GMT-5 Indian/Kerguelen Indian/Maldives ] -d,18000,3,2,-1,1,w,9,2,-1,1,w,60,2,215,392 # 75 GMT+5:00 Apr Sun>=2 0:01 Oct Sun>=2 0:01 1:00 [ Asia/Karachi PLT ] +s,18000,2,215,392 # 75 GMT+5:00 [ Asia/Karachi PLT ] d,18000,2,-1,1,120,s,9,-1,1,120,s,60,2,187,258 # 76 GMT+5:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Aqtobe Asia/Yekaterinburg ] d,18000,2,-1,1,150,w,9,-1,1,150,w,60,1,194 # 77 GMT+5:00 Mar lastSun 2:30 Oct lastSun 2:30 1:00 [ Asia/Bishkek ] s,19800,2,196,374 # 78 GMT+5:30 [ Asia/Calcutta IST ] @@ -544,39 +544,39 @@ s,21600,8,175,180,199,201,251,282,315,376 # 80 GMT+6:00 [ Antarctica/Mawson Anta d,21600,2,-1,1,120,s,9,-1,1,120,s,60,4,183,228,229,235 # 81 GMT+6:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Almaty Asia/Novosibirsk Asia/Omsk Asia/Qyzylorda ] s,23400,2,236,378 # 82 GMT+6:30 [ Asia/Rangoon Indian/Cocos ] s,25200,10,173,192,210,231,232,241,255,316,377,437 # 83 GMT+7:00 [ Antarctica/Davis Asia/Bangkok Asia/Jakarta Asia/Phnom_Penh Asia/Pontianak Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas VST ] -d,25200,3,27,0,120,s,8,28,0,120,s,60,1,208 # 84 GMT+7:00 Apr 27 2:00s Sep 28 2:00s 1:00 [ Asia/Hovd ] +s,25200,1,208 # 84 GMT+7:00 [ Asia/Hovd ] d,25200,2,-1,1,120,s,9,-1,1,120,s,60,1,218 # 85 GMT+7:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Krasnoyarsk ] s,28800,8,172,195,219,220,224,246,279,317 # 86 GMT+8:00 [ Antarctica/Casey Asia/Brunei Asia/Kuala_Lumpur Asia/Kuching Asia/Makassar Asia/Singapore Australia/Perth Etc/GMT-8 ] -d,28800,3,27,0,120,s,8,28,0,120,s,60,1,253 # 87 GMT+8:00 Apr 27 2:00s Sep 28 2:00s 1:00 [ Asia/Ulaanbaatar ] -d,28800,3,10,-1,0,w,8,11,-1,0,w,60,7,198,206,216,222,245,254,287 # 88 GMT+8:00 Apr Sun>=10 0:00 Sep Sun>=11 0:00 1:00 [ Asia/Chongqing Asia/Harbin Asia/Kashgar Asia/Macau Asia/Shanghai Asia/Urumqi CTT ] -d,28800,5,30,0,0,w,8,30,0,0,w,60,1,247 # 89 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,225 # 90 GMT+8:00 Mar 22 0:00 Sep 21 0:00 1:00 [ Asia/Manila ] +s,28800,1,253 # 87 GMT+8:00 [ Asia/Ulaanbaatar ] +s,28800,7,198,206,216,222,245,254,287 # 88 GMT+8:00 [ Asia/Chongqing Asia/Harbin Asia/Kashgar Asia/Macau Asia/Shanghai Asia/Urumqi CTT ] +s,28800,1,247 # 89 GMT+8:00 [ Asia/Taipei ] +s,28800,1,225 # 90 GMT+8:00 [ Asia/Manila ] d,28800,2,-1,1,120,s,9,-1,1,120,s,60,1,209 # 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,207 # 92 GMT+8:00 May Sun>=8 3:30 Oct Sun>=16 3:30 1:00 [ Asia/Hong_Kong ] +s,28800,1,207 # 92 GMT+8:00 [ Asia/Hong_Kong ] s,32400,7,202,211,233,252,318,386,422 # 93 GMT+9:00 [ Asia/Dili Asia/Jayapura Asia/Pyongyang Asia/Tokyo Etc/GMT-9 JST Pacific/Palau ] -d,32400,3,27,0,120,s,8,28,0,120,s,60,1,197 # 94 GMT+9:00 Apr 27 2:00s Sep 28 2:00s 1:00 [ Asia/Choibalsan ] +s,32400,1,197 # 94 GMT+9:00 [ Asia/Choibalsan ] d,32400,2,-1,1,120,s,9,-1,1,120,s,60,1,257 # 95 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,244 # 96 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,274 # 97 GMT+9:30 Oct 3 2:00 Mar lastSun 2:00 1:00 [ ACT Australia/Darwin ] +s,32400,1,244 # 96 GMT+9:00 [ Asia/Seoul ] +s,34200,2,0,274 # 97 GMT+9:30 [ ACT Australia/Darwin ] d,34200,9,-1,1,120,s,2,-1,1,120,s,60,2,271,273 # 98 GMT+9:30 Oct lastSun 2:00s Mar lastSun 2:00s 1:00 [ Australia/Adelaide Australia/Broken_Hill ] s,36000,7,174,306,408,425,427,431,434 # 99 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,2,242,256 # 100 GMT+10:00 Mar lastSun 2:00s Oct lastSun 2:00s 1:00 [ Asia/Sakhalin Asia/Vladivostok ] d,36000,9,-1,1,120,s,2,-1,1,120,s,60,3,1,278,280 # 101 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,272,276 # 102 GMT+10:00 Oct lastSun 2:00s Mar Sun>=1 2:00s 1:00 [ Australia/Brisbane Australia/Lindeman ] +s,36000,2,272,276 # 102 GMT+10:00 [ Australia/Brisbane Australia/Lindeman ] d,36000,9,1,-1,120,s,2,-1,1,120,s,60,1,275 # 103 GMT+10:00 Oct Sun>=1 2:00s Mar lastSun 2:00s 1:00 [ Australia/Hobart ] d,37800,9,-1,1,120,w,2,-1,1,120,w,30,1,277 # 104 GMT+10:30 Oct lastSun 2:00 Mar lastSun 2:00 0:30 [ Australia/Lord_Howe ] s,39600,5,307,407,412,424,435 # 105 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,420 # 106 GMT+11:00 Dec 1 2:00s Mar 2 2:00s 1:00 [ Pacific/Noumea ] +s,39600,1,420 # 106 GMT+11:00 [ Pacific/Noumea ] d,39600,2,-1,1,120,s,9,-1,1,120,s,60,1,223 # 107 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,400 # 108 GMT+11:00 Oct Sun>=23 0:00 Jan Sun>=23 0:00 1:00 [ Pacific/Efate ] +s,39600,1,400 # 108 GMT+11:00 [ Pacific/Efate ] s,41400,1,419 # 109 GMT+11:30 [ Pacific/Norfolk ] s,43200,8,308,404,413,414,417,429,432,433 # 110 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,185,214 # 111 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,403 # 112 GMT+12:00 Nov Sun>=1 2:00 Feb lastSun 3:00 1:00 [ Pacific/Fiji ] +s,43200,1,403 # 112 GMT+12:00 [ Pacific/Fiji ] d,43200,9,1,-1,120,s,2,15,-1,120,s,60,3,176,391,397 # 113 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,398 # 114 GMT+12:45 Oct Sun>=1 2:45s Mar Sun>=15 2:45s 1:00 [ Pacific/Chatham ] s,46800,2,309,401 # 115 GMT+13 [ Etc/GMT-13 Pacific/Enderbury ] -d,46800,10,1,-1,120,w,0,-1,1,120,w,60,1,430 # 116 GMT+13:00 Nov Sun>=1 2:00 Jan lastSun 2:00 1:00 [ Pacific/Tongatapu ] +s,46800,1,430 # 116 GMT+13:00 [ Pacific/Tongatapu ] s,50400,2,310,411 # 117 GMT+14 [ Etc/GMT-14 Pacific/Kiritimati ] end diff --git a/icu4c/source/tools/gentz/tz.pl b/icu4c/source/tools/gentz/tz.pl index 553150e17e9..f44a1af7c40 100755 --- a/icu4c/source/tools/gentz/tz.pl +++ b/icu4c/source/tools/gentz/tz.pl @@ -645,6 +645,13 @@ sub emitText { # Output either 's' or 'd' to indicate standard or DST my $isStd = ($zones->{$z}->{rule} eq $TZ::STANDARD); + if (!$isStd) { + my $rule = $rules->{$zones->{$z}->{rule}}; + if (!(@{$rule} >= 4 && ($rule->[3] & 1) && ($rule->[3] & 2))) { + $isStd = 1; + } + } + print OUT $isStd ? 's,' : 'd,'; # Format the zone @@ -771,6 +778,12 @@ sub emitJava { # Output either 's' or 'd' to indicate standard or DST my $isStd = ($zones->{$z}->{rule} eq $TZ::STANDARD); + if (!$isStd) { + my $rule = $rules->{$zones->{$z}->{rule}}; + if (!(@{$rule} >= 4 && ($rule->[3] & 1) && ($rule->[3] & 2))) { + $isStd = 1; + } + } $_DATA .= $isStd ? '0/*s*/,' : '1/*d*/,'; # Format the zone @@ -1395,15 +1408,18 @@ sub formatZone { # ($z, $ZONES{$z}, \%RULES) # $rule is now an array ref, with [0] being the onset and # [1] being the cease. - formatRule($rule->[0], \@spec, \@notes); # Onset - formatRule($rule->[1], \@spec, \@notes); # Cease - - my @a = parseTime($rule->[0]->{save}); - if ($a[1] ne 'w') { - die "Strange DST savings value: \"$rule->[0]->{save}\""; + if (@{$rule} >= 4 && ($rule->[3] & 1) && ($rule->[3] & 2)) { + + formatRule($rule->[0], \@spec, \@notes); # Onset + formatRule($rule->[1], \@spec, \@notes); # Cease + + my @a = parseTime($rule->[0]->{save}); + if ($a[1] ne 'w') { + die "Strange DST savings value: \"$rule->[0]->{save}\""; + } + push @notes, $rule->[0]->{save}; + push @spec, $a[0]; } - push @notes, $rule->[0]->{save}; - push @spec, $a[0]; } (\@spec, \@notes); diff --git a/icu4c/source/tools/gentz/tzparse.pm b/icu4c/source/tools/gentz/tzparse.pm index ffe22131776..a30ccc5d097 100644 --- a/icu4c/source/tools/gentz/tzparse.pm +++ b/icu4c/source/tools/gentz/tzparse.pm @@ -184,7 +184,7 @@ sub ParseFile { # a current rule. If so, do nothing. If not, then # save this rule line as the best one so far. if (@{$ruleArray} < 3 || - !($ruleArray->[2] & $i)) { + !($ruleArray->[2] & 1 << $i)) { my $h = $ruleArray->[$i]; $ruleArray->[$i]->{from} = $from; $ruleArray->[$i]->{to} = $to; @@ -203,7 +203,8 @@ sub ParseFile { if (($from == $YEAR && $to =~ /only/i) || ($from <= $YEAR && (($to =~ /^\d/ && $YEAR <= $to) || $to =~ /max/i))) { - $ruleArray->[2] |= $i; + $ruleArray->[2] |= 1 << $i; + $ruleArray->[3] |= 1 << $i; } } } else {