]> granicus.if.org Git - icu/commitdiff
ICU-13552 tzdata2018a updates to ICU trunk. Zoneinfo data Europe/Dublin is modified...
authorYoshito Umaoka <y.umaoka@gmail.com>
Fri, 19 Jan 2018 05:13:00 +0000 (05:13 +0000)
committerYoshito Umaoka <y.umaoka@gmail.com>
Fri, 19 Jan 2018 05:13:00 +0000 (05:13 +0000)
X-SVN-Rev: 40787

icu4c/source/data/misc/metaZones.txt
icu4c/source/data/misc/windowsZones.txt
icu4c/source/data/misc/zoneinfo64.txt
icu4c/source/tools/tzcode/icuzones
icu4c/source/tools/tzcode/tz2icu.cpp
icu4j/main/shared/data/icudata.jar
icu4j/main/shared/data/icutzdata.jar

index e90883d24c6edbfcd30458778507069176f20cb6..564992a3b15ee3d0f76db8acb8161df7da50f604 100644 (file)
@@ -344,7 +344,6 @@ metaZones:table(nofallback){
             SH{"Atlantic/St_Helena"}
             SL{"Africa/Freetown"}
             SN{"Africa/Dakar"}
-            ST{"Africa/Sao_Tome"}
             TG{"Africa/Lome"}
         }
         Galapagos{
@@ -1030,6 +1029,13 @@ metaZones:table(nofallback){
         "Africa:Sao_Tome"{
             {
                 "GMT",
+                "1970-01-01 00:00",
+                "2018-01-01 01:00",
+            }
+            {
+                "Africa_Western",
+                "2018-01-01 01:00",
+                "9999-12-31 23:59",
             }
         }
         "Africa:Tripoli"{
index ec393d912b07b23ef2ab8b2eb6a503ce1d81d39a..d7f143cf87e1d782a2d8d4aadcc2c97b26d5bf35 100644 (file)
@@ -316,7 +316,6 @@ windowsZones:table(nofallback){
             SH{"Atlantic/St_Helena"}
             SL{"Africa/Freetown"}
             SN{"Africa/Dakar"}
-            ST{"Africa/Sao_Tome"}
             TG{"Africa/Lome"}
         }
         "Haiti Standard Time"{
@@ -744,6 +743,7 @@ windowsZones:table(nofallback){
             GQ{"Africa/Malabo"}
             NE{"Africa/Niamey"}
             NG{"Africa/Lagos"}
+            ST{"Africa/Sao_Tome"}
             TD{"Africa/Ndjamena"}
             TN{"Africa/Tunis"}
             ZZ{"Etc/GMT-1"}
index 154470b3ac5ed362975f2c0e4fd09f555f0baaa8..f4ece0a8ac6f1a58db53a582f7039e9a1cd8ee84 100644 (file)
@@ -3,9 +3,9 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License
 //---------------------------------------------------------
 // Build tool:  tz2icu
-// Build date:  Tue Oct 24 17:35:27 2017
+// Build date:  Thu Jan 18 04:48:22 2018
 // tz database: ftp://ftp.iana.org/tz/
-// tz version:  2017c
+// tz version:  2018a
 // ICU version: 60.1
 //---------------------------------------------------------
 // >> !!! >>   THIS IS A MACHINE-GENERATED FILE   << !!! <<
@@ -13,7 +13,7 @@
 //---------------------------------------------------------
 
 zoneinfo64:table(nofallback) {
- TZVersion { "2017c" }
+ TZVersion { "2018a" }
  Zones:array { 
   /* ACT */ :int { 354 } //Z#0
   /* AET */ :int { 366 } //Z#1
@@ -24,7 +24,7 @@ zoneinfo64:table(nofallback) {
     trans:intvector { -1830383032 }
     typeOffsets:intvector { -968, 0, 0, 0 }
     typeMap:bin { "01" }
-    links:intvector { 5, 11, 13, 21, 22, 27, 38, 51, 52, 54, 55, 346 }
+    links:intvector { 5, 11, 13, 21, 22, 27, 38, 51, 52, 55, 346 }
   } //Z#5
   /* Africa/Accra */ :table {
     trans:intvector { -1640995148, -1556841600, -1546388400, -1525305600, -1514852400, -1493769600, -1483316400, -1462233600, -1451780400, -1430611200, -1420158000, -1399075200, -1388622000, -1367539200, -1357086000, -1336003200, -1325550000, -1304380800, -1293927600, -1272844800, -1262391600, -1241308800, -1230855600, -1209772800, -1199319600, -1178150400, -1167697200, -1146614400, -1136161200, -1115078400, -1104625200, -1083542400, -1073089200, -1051920000, -1041466800, -1020384000, -1009930800, -988848000, -978394800, -957312000, -946858800, -925689600, -915236400, -894153600, -883700400, -862617600, -852164400 }
@@ -154,7 +154,12 @@ zoneinfo64:table(nofallback) {
   /* Africa/Nouakchott */ :int { 5 } //Z#51
   /* Africa/Ouagadougou */ :int { 5 } //Z#52
   /* Africa/Porto-Novo */ :int { 36 } //Z#53
-  /* Africa/Sao_Tome */ :int { 5 } //Z#54
+  /* Africa/Sao_Tome */ :table {
+    transPre32:intvector { -1, 1581055280 }
+    trans:intvector { -1830381795, 1514768400 }
+    typeOffsets:intvector { 1616, 0, -2205, 0, 0, 0, 3600, 0 }
+    typeMap:bin { "010203" }
+  } //Z#54
   /* Africa/Timbuktu */ :int { 5 } //Z#55
   /* Africa/Tripoli */ :table {
     trans:intvector { -1577926364, -574902000, -568087200, -512175600, -504928800, -449888400, -441856800, -347158800, 378684000, 386463600, 402271200, 417999600, 433807200, 449622000, 465429600, 481590000, 496965600, 512953200, 528674400, 544230000, 560037600, 575852400, 591660000, 607388400, 623196000, 641775600, 844034400, 860108400, 875916000, 1352505600, 1364515200, 1382659200 }
@@ -358,8 +363,8 @@ zoneinfo64:table(nofallback) {
     finalYear:int { 2008 }
   } //Z#91
   /* America/Campo_Grande */ :table {
-    trans:intvector { -1767212492, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200, 592977600, 602046000, 624427200, 634705200, 656481600, 666759600, 687931200, 697604400, 719985600, 728449200, 750830400, 761713200, 782280000, 793162800, 813729600, 824007600, 844574400, 856062000, 876110400, 888721200, 908078400, 919566000, 938923200, 951620400, 970977600, 982465200, 1003032000, 1013914800, 1036296000, 1045364400, 1066536000, 1076814000, 1099368000, 1108868400, 1129435200, 1140318000, 1162699200, 1172372400, 1192334400, 1203217200, 1224388800, 1234666800, 1255838400, 1266721200, 1287288000, 1298170800, 1318737600, 1330225200, 1350792000, 1361070000, 1382241600, 1392519600, 1413691200, 1424574000, 1445140800, 1456023600, 1476590400, 1487473200, 1508040000, 1518922800, 1540094400, 1550372400, 1571544000, 1581822000, 1602993600, 1613876400, 1634443200, 1645326000, 1665892800, 1677380400, 1697342400, 1708225200, 1729396800, 1739674800, 1760846400, 1771729200, 1792296000, 1803178800, 1823745600, 1834628400, 1855195200, 1866078000, 1887249600, 1897527600, 1918699200, 1928977200, 1950148800, 1960426800, 1981598400, 1992481200, 2013048000, 2024535600, 2044497600, 2055380400, 2076552000, 2086830000, 2108001600, 2118884400, 2139451200 }
-    transPost32:intvector { 0, -2144633296, 0, -2124066496 }
+    trans:intvector { -1767212492, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200, 592977600, 602046000, 624427200, 634705200, 656481600, 666759600, 687931200, 697604400, 719985600, 728449200, 750830400, 761713200, 782280000, 793162800, 813729600, 824007600, 844574400, 856062000, 876110400, 888721200, 908078400, 919566000, 938923200, 951620400, 970977600, 982465200, 1003032000, 1013914800, 1036296000, 1045364400, 1066536000, 1076814000, 1099368000, 1108868400, 1129435200, 1140318000, 1162699200, 1172372400, 1192334400, 1203217200, 1224388800, 1234666800, 1255838400, 1266721200, 1287288000, 1298170800, 1318737600, 1330225200, 1350792000, 1361070000, 1382241600, 1392519600, 1413691200, 1424574000, 1445140800, 1456023600, 1476590400, 1487473200, 1508040000, 1518922800, 1541304000, 1550372400, 1572753600, 1581822000, 1604203200, 1613876400, 1636257600, 1645326000, 1667707200, 1677380400, 1699156800, 1708225200, 1730606400, 1739674800, 1762056000, 1771729200, 1793505600, 1803178800, 1825560000, 1834628400, 1857009600, 1866078000, 1888459200, 1897527600, 1919908800, 1928977200, 1951358400, 1960426800, 1983412800, 1992481200, 2014862400, 2024535600, 2046312000, 2055380400, 2077761600, 2086830000, 2109211200, 2118884400, 2140660800 }
+    transPost32:intvector { 0, -2144633296, 0, -2122252096 }
     typeOffsets:intvector { -13108, 0, -14400, 0, -14400, 3600 }
     typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
     finalRule { "Brazil" }
@@ -416,8 +421,8 @@ zoneinfo64:table(nofallback) {
     typeMap:bin { "020102" }
   } //Z#103
   /* America/Cuiaba */ :table {
-    trans:intvector { -1767212140, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200, 592977600, 602046000, 624427200, 634705200, 656481600, 666759600, 687931200, 697604400, 719985600, 728449200, 750830400, 761713200, 782280000, 793162800, 813729600, 824007600, 844574400, 856062000, 876110400, 888721200, 908078400, 919566000, 938923200, 951620400, 970977600, 982465200, 1003032000, 1013914800, 1036296000, 1045364400, 1099368000, 1108868400, 1129435200, 1140318000, 1162699200, 1172372400, 1192334400, 1203217200, 1224388800, 1234666800, 1255838400, 1266721200, 1287288000, 1298170800, 1318737600, 1330225200, 1350792000, 1361070000, 1382241600, 1392519600, 1413691200, 1424574000, 1445140800, 1456023600, 1476590400, 1487473200, 1508040000, 1518922800, 1540094400, 1550372400, 1571544000, 1581822000, 1602993600, 1613876400, 1634443200, 1645326000, 1665892800, 1677380400, 1697342400, 1708225200, 1729396800, 1739674800, 1760846400, 1771729200, 1792296000, 1803178800, 1823745600, 1834628400, 1855195200, 1866078000, 1887249600, 1897527600, 1918699200, 1928977200, 1950148800, 1960426800, 1981598400, 1992481200, 2013048000, 2024535600, 2044497600, 2055380400, 2076552000, 2086830000, 2108001600, 2118884400, 2139451200 }
-    transPost32:intvector { 0, -2144633296, 0, -2124066496 }
+    trans:intvector { -1767212140, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200, 592977600, 602046000, 624427200, 634705200, 656481600, 666759600, 687931200, 697604400, 719985600, 728449200, 750830400, 761713200, 782280000, 793162800, 813729600, 824007600, 844574400, 856062000, 876110400, 888721200, 908078400, 919566000, 938923200, 951620400, 970977600, 982465200, 1003032000, 1013914800, 1036296000, 1045364400, 1099368000, 1108868400, 1129435200, 1140318000, 1162699200, 1172372400, 1192334400, 1203217200, 1224388800, 1234666800, 1255838400, 1266721200, 1287288000, 1298170800, 1318737600, 1330225200, 1350792000, 1361070000, 1382241600, 1392519600, 1413691200, 1424574000, 1445140800, 1456023600, 1476590400, 1487473200, 1508040000, 1518922800, 1541304000, 1550372400, 1572753600, 1581822000, 1604203200, 1613876400, 1636257600, 1645326000, 1667707200, 1677380400, 1699156800, 1708225200, 1730606400, 1739674800, 1762056000, 1771729200, 1793505600, 1803178800, 1825560000, 1834628400, 1857009600, 1866078000, 1888459200, 1897527600, 1919908800, 1928977200, 1951358400, 1960426800, 1983412800, 1992481200, 2014862400, 2024535600, 2046312000, 2055380400, 2077761600, 2086830000, 2109211200, 2118884400, 2140660800 }
+    transPost32:intvector { 0, -2144633296, 0, -2122252096 }
     typeOffsets:intvector { -13460, 0, -14400, 0, -14400, 3600 }
     typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
     finalRule { "Brazil" }
@@ -1040,8 +1045,8 @@ zoneinfo64:table(nofallback) {
     typeMap:bin { "0401030102010201020102010201050105" }
   } //Z#201
   /* America/Sao_Paulo */ :table {
-    trans:intvector { -1767214412, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -195426000, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 656478000, 666756000, 687927600, 697600800, 719982000, 728445600, 750826800, 761709600, 782276400, 793159200, 813726000, 824004000, 844570800, 856058400, 876106800, 888717600, 908074800, 919562400, 938919600, 951616800, 970974000, 982461600, 1003028400, 1013911200, 1036292400, 1045360800, 1066532400, 1076810400, 1099364400, 1108864800, 1129431600, 1140314400, 1162695600, 1172368800, 1192330800, 1203213600, 1224385200, 1234663200, 1255834800, 1266717600, 1287284400, 1298167200, 1318734000, 1330221600, 1350788400, 1361066400, 1382238000, 1392516000, 1413687600, 1424570400, 1445137200, 1456020000, 1476586800, 1487469600, 1508036400, 1518919200, 1540090800, 1550368800, 1571540400, 1581818400, 1602990000, 1613872800, 1634439600, 1645322400, 1665889200, 1677376800, 1697338800, 1708221600, 1729393200, 1739671200, 1760842800, 1771725600, 1792292400, 1803175200, 1823742000, 1834624800, 1855191600, 1866074400, 1887246000, 1897524000, 1918695600, 1928973600, 1950145200, 1960423200, 1981594800, 1992477600, 2013044400, 2024532000, 2044494000, 2055376800, 2076548400, 2086826400, 2107998000, 2118880800, 2139447600 }
-    transPost32:intvector { 0, -2144636896, 0, -2124070096 }
+    trans:intvector { -1767214412, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -195426000, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 656478000, 666756000, 687927600, 697600800, 719982000, 728445600, 750826800, 761709600, 782276400, 793159200, 813726000, 824004000, 844570800, 856058400, 876106800, 888717600, 908074800, 919562400, 938919600, 951616800, 970974000, 982461600, 1003028400, 1013911200, 1036292400, 1045360800, 1066532400, 1076810400, 1099364400, 1108864800, 1129431600, 1140314400, 1162695600, 1172368800, 1192330800, 1203213600, 1224385200, 1234663200, 1255834800, 1266717600, 1287284400, 1298167200, 1318734000, 1330221600, 1350788400, 1361066400, 1382238000, 1392516000, 1413687600, 1424570400, 1445137200, 1456020000, 1476586800, 1487469600, 1508036400, 1518919200, 1541300400, 1550368800, 1572750000, 1581818400, 1604199600, 1613872800, 1636254000, 1645322400, 1667703600, 1677376800, 1699153200, 1708221600, 1730602800, 1739671200, 1762052400, 1771725600, 1793502000, 1803175200, 1825556400, 1834624800, 1857006000, 1866074400, 1888455600, 1897524000, 1919905200, 1928973600, 1951354800, 1960423200, 1983409200, 1992477600, 2014858800, 2024532000, 2046308400, 2055376800, 2077758000, 2086826400, 2109207600, 2118880800, 2140657200 }
+    transPost32:intvector { 0, -2144636896, 0, -2122255696 }
     typeOffsets:intvector { -11188, 0, -10800, 0, -10800, 3600 }
     typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
     finalRule { "Brazil" }
@@ -2140,10 +2145,10 @@ zoneinfo64:table(nofallback) {
   } //Z#451
   /* Europe/Dublin */ :table {
     transPre32:intvector { -1, 1473317596 }
-    trans:intvector { -1691962479, -1680471279, -1664143200, -1650146400, -1633903200, -1617487200, -1601848800, -1586037600, -1570399200, -1552168800, -1538344800, -1522533600, -1507500000, -1490565600, -1473631200, -1460930400, -1442786400, -1428876000, -1410732000, -1396216800, -1379282400, -1364767200, -1348437600, -1333317600, -1315778400, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1189980000, -1175464800, -1159135200, -1143410400, -1126476000, -1111960800, -1095631200, -1080511200, -1063576800, -1049061600, -1032127200, -1017612000, -1001282400, -986162400, -969228000, -950479200, -942012000, -733356000, -719445600, -699487200, -684972000, -668037600, -654732000, -636588000, -622072800, -605743200, -590623200, -574293600, -558568800, -542239200, -527119200, -512604000, -496274400, -481154400, -464220000, -449704800, -432165600, -417650400, -401320800, -386200800, -369266400, -354751200, -337816800, -323301600, -306972000, -291852000, -276732000, -257983200, -245282400, -226533600, -213228000, -195084000, -182383200, -163634400, -150933600, -132184800, -119484000, -100735200, -88034400, -68680800, -59004000, -37242000, 57722400, 69818400, 89172000, 101268000, 120621600, 132717600, 152071200, 164167200, 183520800, 196221600, 214970400, 227671200, 246420000, 259120800, 278474400, 290570400, 309924000, 322020000, 341373600, 354675600, 372819600, 386125200, 404269200, 417574800, 435718800, 449024400, 467773200, 481078800, 499222800, 512528400, 530672400, 543978000, 562122000, 575427600, 593571600, 606877200, 625626000, 638326800, 657075600, 670381200, 688525200, 701830800, 719974800, 733280400, 751424400, 764730000, 782874000, 796179600, 814323600, 828234000, 846378000 }
-    typeOffsets:intvector { -1500, 0, -1521, 0, -1521, 3600, 0, 0, 0, 3600, 3600, 0 }
-    typeMap:bin { "0102030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030405030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
-    finalRule { "EU" }
+    trans:intvector { -1691962479, -1680471279, -1664143200, -1650146400, -1633903200, -1617487200, -1601848800, -1586037600, -1570399200, -1552168800, -1538344800, -1522533600, -1507500000, -1490565600, -1473631200, -1460930400, -1442786400, -1428876000, -1410732000, -1396216800, -1379282400, -1364767200, -1348437600, -1333317600, -1315778400, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1189980000, -1175464800, -1159135200, -1143410400, -1126476000, -1111960800, -1095631200, -1080511200, -1063576800, -1049061600, -1032127200, -1017612000, -1001282400, -986162400, -969228000, -950479200, -942012000, -733356000, -719445600, -699487200, -684972000, -668037600, -654732000, -636588000, -622072800, -605743200, -590623200, -574293600, -558568800, -542239200, -527119200, -512604000, -496274400, -481154400, -464220000, -449704800, -432165600, -417650400, -401320800, -386200800, -369266400, -354751200, -337816800, -323301600, -306972000, -291852000, -276732000, -257983200, -245282400, -226533600, -213228000, -195084000, -182383200, -163634400, -150933600, -132184800, -119484000, -100735200, -88034400, -68680800, -59004000, -37242000, 69818400, 89172000, 101268000, 120621600, 132717600, 152071200, 164167200, 183520800, 196221600, 214970400, 227671200, 246420000, 259120800, 278474400, 290570400, 309924000, 322020000, 341373600, 354675600, 372819600, 386125200, 404269200, 417574800, 435718800, 449024400, 467773200, 481078800, 499222800, 512528400, 530672400, 543978000, 562122000, 575427600, 593571600, 606877200, 625626000, 638326800, 657075600, 670381200, 688525200, 701830800, 719974800, 733280400, 751424400, 764730000, 782874000, 796179600, 814323600, 828234000, 846378000 }
+    typeOffsets:intvector { -1500, 0, -1521, 0, -1521, 3600, 0, 0, 0, 3600 }
+    typeMap:bin { "01020304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
+    finalRule { "Eire--ICU" }
     finalRaw:int { 0 }
     finalYear:int { 1997 }
     links:intvector { 401, 452 }
@@ -3083,7 +3088,7 @@ zoneinfo64:table(nofallback) {
     9, 1, -1, 7200, 1, 3, 1, -1, 7200, 1, 3600
   } //_#3
   Brazil:intvector {
-    9, 15, -1, 0, 0, 1, 15, -1, 0, 0, 3600
+    10, 1, -1, 0, 0, 1, 15, -1, 0, 0, 3600
   } //_#4
   C-Eur:intvector {
     2, -31, -1, 7200, 1, 9, -31, -1, 7200, 1, 3600
@@ -3106,63 +3111,69 @@ zoneinfo64:table(nofallback) {
   EUAsia:intvector {
     2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 3600
   } //_#11
+  Eire:intvector {
+    9, -31, -1, 3600, 2, 2, -31, -1, 3600, 2, -3600
+  } //_#12
+  Eire--ICU:intvector {
+    2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 3600
+  } //_#13
   Fiji:intvector {
     10, 1, -1, 7200, 0, 0, 14, -1, 10800, 0, 3600
-  } //_#12
+  } //_#14
   Haiti:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
-  } //_#13
+  } //_#15
   Iran:intvector {
     2, 21, 0, 0, 0, 8, 21, 0, 0, 0, 3600
-  } //_#14
+  } //_#16
   Jordan:intvector {
     2, -31, -5, 86400, 0, 9, -31, -6, 0, 1, 3600
-  } //_#15
+  } //_#17
   LH:intvector {
     9, 1, -1, 7200, 0, 3, 1, -1, 7200, 0, 1800
-  } //_#16
+  } //_#18
   Lebanon:intvector {
     2, -31, -1, 0, 0, 9, -31, -1, 0, 0, 3600
-  } //_#17
+  } //_#19
   Mexico:intvector {
     3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
-  } //_#18
+  } //_#20
   Moldova:intvector {
     2, -31, -1, 7200, 0, 9, -31, -1, 10800, 0, 3600
-  } //_#19
+  } //_#21
   Morocco:intvector {
     2, -31, -1, 7200, 0, 9, -31, -1, 10800, 0, 3600
-  } //_#20
+  } //_#22
   NZ:intvector {
     8, -30, -1, 7200, 1, 3, 1, -1, 7200, 1, 3600
-  } //_#21
+  } //_#23
   Palestine:intvector {
     2, -31, -7, 3600, 0, 9, -31, -7, 3600, 0, 3600
-  } //_#22
+  } //_#24
   Para:intvector {
     9, 1, -1, 0, 0, 2, 22, -1, 0, 0, 3600
-  } //_#23
+  } //_#25
   Syria:intvector {
     2, -31, -6, 0, 0, 9, -31, -6, 0, 0, 3600
-  } //_#24
+  } //_#26
   SystemV:intvector {
     3, -30, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
-  } //_#25
+  } //_#27
   Thule:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
-  } //_#26
+  } //_#28
   Troll:intvector {
     2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 7200
-  } //_#27
+  } //_#29
   US:intvector {
     2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
-  } //_#28
+  } //_#30
   WS:intvector {
     8, -30, -1, 10800, 0, 3, 1, -1, 14400, 0, 3600
-  } //_#29
+  } //_#31
   Zion:intvector {
     2, 23, -6, 7200, 0, 9, -31, -1, 7200, 0, 3600
-  } //_#30
+  } //_#32
  }
  Regions:array {
   "AU", //Z#0 ACT
index 9e3c7c9c7251288b27fcd85aecbda7618b14995d..8596bda64a90389cfe483a16d5cd5b92d86b1a5c 100644 (file)
@@ -78,3 +78,34 @@ Link Asia/Ho_Chi_Minh VST
 #
 Link America/Regina Canada/East-Saskatchewan # removed from backward in 2017c
 
+#
+# tzdata2018a changed Europe/Dublin to use IST (UTC+1) as the standard time
+# of the region, and GMT (UTC) as the daylight saving time with negative
+# offset (-1 hour) in winter. ICU SimpleTimeZone rejects a zone with negative
+# daylight saving time offset. We could remove the restriction in newer version
+# of ICU, but such data does not work well with older ICU runtime without
+# fixing the issue. For now, we define our own Europe/Dubin in ICU, replacing
+# Europe/Dublin data from the tz database.
+#
+
+# Rule NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
+Rule   Eire--ICU       1971    only    -       Oct     31       2:00u  0       GMT
+Rule   Eire--ICU       1972    1980    -       Mar     Sun>=16  2:00u  1:00    IST
+Rule   Eire--ICU       1972    1980    -       Oct     Sun>=23  2:00u  0       GMT
+Rule   Eire--ICU       1981    max     -       Mar     lastSun  1:00u  1:00    IST
+Rule   Eire--ICU       1981    1989    -       Oct     Sun>=23  1:00u  0       GMT
+Rule   Eire--ICU       1990    1995    -       Oct     Sun>=22  1:00u  0       GMT
+Rule   Eire--ICU       1996    max     -       Oct     lastSun  1:00u  0       GMT
+
+# Zone NAME            GMTOFF  RULES   FORMAT  [UNTIL]
+Zone   Europe/Dublin--ICU      -0:25:00 -      LMT     1880 Aug  2
+                       -0:25:21 -      DMT     1916 May 21  2:00s
+                       -0:25:21 1:00   IST     1916 Oct  1  2:00s
+                        0:00   GB-Eire %s      1921 Dec  6 # independence
+                        0:00   GB-Eire GMT/IST 1940 Feb 25  2:00s
+                        0:00   1:00    IST     1946 Oct  6  2:00s
+                        0:00   -       GMT     1947 Mar 16  2:00s
+                        0:00   1:00    IST     1947 Nov  2  2:00s
+                        0:00   -       GMT     1948 Apr 18  2:00s
+                        0:00   GB-Eire GMT/IST 1968 Oct 27
+                        0:00   Eire--ICU       GMT/IST
index f0ee63e2b5335b10f5346b5cb8e48b2e7f85bdc3..dff31949bad3b41ee2c7a84cedfba81ab8405640 100644 (file)
@@ -830,7 +830,7 @@ struct FinalRulePart {
         if (mode != DOM && (dow < 0 || dow >= 7)) {
             os << "Invalid input day of week " << dow;
         }
-        if (offset < 0 || offset > (2 * HOUR)) {
+        if (offset < (-1 * HOUR) || offset > (2 * HOUR)) {
             os << "Invalid input offset " << offset;
         }
         if (isgmt && !isstd) {
@@ -1430,6 +1430,9 @@ void FinalRule::print(ostream& os) const {
     os << part[whichpart].offset << endl;
 }
 
+#define ICU_ZONE_OVERRIDE_SUFFIX "--ICU"
+#define ICU_ZONE_OVERRIDE_SUFFIX_LEN 5
+
 int main(int argc, char *argv[]) {
     string rootpath, zonetab, version;
     bool validArgs = FALSE;
@@ -1493,6 +1496,54 @@ int main(int argc, char *argv[]) {
          << (ZONEINFO.begin())->first << ".."
          << (--ZONEINFO.end())->first << "]" << endl;
 
+    // Overrides TZ database zones with ICU custom zone definition.
+    // These ICU zone overrides are defined in icuzones, with suffix --ICU.
+    // If there is a matching TZ database zone, the zoneinfo is replaced
+    // with the ICU definition. Then, the zone ID with --ICU suffix
+    // will be deleted from the final list.
+    // For example, zoneinfo for Europe/Dublin imported from the TZ database
+    // will be replaced with the zone definition for Europe/Dublin--ICU
+    // in icuzones.
+
+    // Collect zone IDs to be modified with ICU definition.
+    vector<string> customZones;
+    for (ZoneMapIter i = ZONEINFO.begin(); i != ZONEINFO.end(); ++i) {
+        string id = i->first;
+        size_t idx = id.rfind(ICU_ZONE_OVERRIDE_SUFFIX);
+        if (idx != string::npos && idx == id.length() - ICU_ZONE_OVERRIDE_SUFFIX_LEN) {
+            cout << "ICU zone override: " << id << endl;
+            customZones.push_back(id.substr(0, idx));
+        }
+    }
+
+    // Replace zoneinfo with ICU definition, then remove ICU zone ID with
+    // the special suffix.
+    for (vector<string>::iterator i = customZones.begin(); i < customZones.end(); i++) {
+        string origId = *i;
+        string custId = origId + ICU_ZONE_OVERRIDE_SUFFIX;
+
+        map<string,ZoneInfo>::iterator origZi = ZONEINFO.find(origId);
+        map<string,ZoneInfo>::iterator custZi = ZONEINFO.find(custId);
+        if (origZi != ZONEINFO.end() && custZi != ZONEINFO.end()) {
+            // replace original zone info with custom override,
+            // then delete one custom ID
+            cout << "Replacing ZoneInfo " << origId << " with " << custId << endl;
+            origZi->second = custZi->second;
+            ZONEINFO.erase(custZi);
+        }
+
+        // Also replace final rule
+        map<string,FinalZone>::iterator origFz = finalZones.find(origId);
+        map<string,FinalZone>::iterator custFz = finalZones.find(custId);
+        if (origFz != finalZones.end() && custFz != finalZones.end()) {
+            // replace original final zone with custom override,
+            // then delete one for custom ID
+            cout << "Replacing FinalZone for " << origId << " with " << custId << endl;
+            origFz->second = custFz->second;
+            finalZones.erase(custFz);
+        }
+    }
+
     try {
         for_each(finalZones.begin(), finalZones.end(), mergeFinalZone);
     } catch (const exception& error) {
index 70ab12b61aa111a61c38d6b792e79fad59e3109c..80a22884f44446c63dca27bdb75bcfbc37da25aa 100755 (executable)
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:49fc6a589685cd6252d1bcfc9fd694b1ef3a298db2875eb0e655111770d0f7f6
-size 12475718
+oid sha256:c49eab66e938bbddc61cd4f5ec09800f8c7546f6496c4c62336869ce0a5f6e3e
+size 12475727
index b2bb53324d2f9508fe498e945d61902fe518e708..8b2841bb38f1a04d69010131f91dd8e419c8f13b 100755 (executable)
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:9ab0aa84333a23a0e40f5641d96d4b12e0f7acc10b3ca32a98141d04af1ef59b
-size 92714
+oid sha256:3c4cf7289cb6a71d2357cb1ba961f5ef499759a9eebe6d4d72c97874dcfbd162
+size 92804