ICU-21448 Update ICU tzdata to 2020f

This commit is contained in:
yumaoka 2021-01-06 20:52:35 +00:00 committed by Yoshito Umaoka
parent bd3b202741
commit 25eb1510ec
11 changed files with 234 additions and 148 deletions

View file

@ -1665,11 +1665,11 @@ metaZones:table(nofallback){
{
"America_Eastern",
"1970-01-01 00:00",
"2015-11-01 06:00",
"2015-03-08 07:00",
}
{
"Atlantic",
"2015-11-01 06:00",
"2015-03-08 07:00",
"2018-03-11 07:00",
}
{
@ -4055,18 +4055,6 @@ metaZones:table(nofallback){
"Europe:Volgograd"{
{
"Volgograd",
"1970-01-01 00:00",
"1992-03-28 22:00",
}
{
"Moscow",
"1992-03-28 22:00",
"2018-10-27 23:00",
}
{
"Volgograd",
"2018-10-27 23:00",
"9999-12-31 23:59",
}
}
"Europe:Warsaw"{

View file

@ -674,10 +674,6 @@ windowsZones:table(nofallback){
}
"US Mountain Standard Time"{
001{"America/Phoenix"}
CA{
"America/Whitehorse America/Creston America/Dawson America/Dawson_Cre"
"ek America/Fort_Nelson"
}
MX{"America/Hermosillo"}
US{"America/Phoenix"}
ZZ{"Etc/GMT+7"}
@ -814,5 +810,12 @@ windowsZones:table(nofallback){
001{"Asia/Yakutsk"}
RU{"Asia/Yakutsk Asia/Khandyga"}
}
"Yukon Standard Time"{
001{"America/Whitehorse"}
CA{
"America/Whitehorse America/Creston America/Dawson America/Dawson_Cre"
"ek America/Fort_Nelson"
}
}
}
}

View file

@ -3,17 +3,17 @@
// License & terms of use: http://www.unicode.org/copyright.html
//---------------------------------------------------------
// Build tool: tz2icu
// Build date: Wed Oct 21 21:13:50 2020
// Build date: Mon Jan 4 23:38:49 2021
// tz database: ftp://ftp.iana.org/tz/
// tz version: 2020d
// ICU version: 68.1
// tz version: 2020f
// ICU version: 68.2
//---------------------------------------------------------
// >> !!! >> THIS IS A MACHINE-GENERATED FILE << !!! <<
// >> !!! >>> DO NOT EDIT <<< !!! <<
//---------------------------------------------------------
zoneinfo64:table(nofallback) {
TZVersion { "2020d" }
TZVersion { "2020f" }
Zones:array {
/* ACT */ :int { 356 } //Z#0
/* AET */ :int { 368 } //Z#1
@ -27,9 +27,9 @@ zoneinfo64:table(nofallback) {
links:intvector { 5, 11, 13, 21, 22, 27, 38, 51, 52, 55, 348 }
} //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 }
typeOffsets:intvector { -52, 0, 0, 0, 0, 1200 }
typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
trans:intvector { -1709337548, -1581206400, -1577917200, -1556834400, -1546294800, -1525298400, -1514758800, -1493762400, -1483222800, -1462226400, -1451686800, -1430604000, -1420064400, -1399068000, -1388528400, -1367532000, -1356992400, -1335996000, -1325456400, -1304373600, -1293834000, -1272837600, -1262298000, -1241301600, -1230762000, -1209765600, -1199226000, -1178143200, -1167603600, -1146607200, -1136067600, -1115071200, -1104531600, -1083535200, -1072995600, -1051912800, -1041373200, -1020376800, -1009837200, -988840800, -978301200, -957304800, -946765200, -936309600, -915142800, -904773600, -883606800, -880329600, -756952200, -610149600, -599610600, -578613600, -568074600, -546991200, -536452200, -515455200, -504916200, -483919200, -473380200, -452383200, -441844200 }
typeOffsets:intvector { -52, 0, 0, 0, 0, 1200, 0, 1800, 1800, 0 }
typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010401030103010301030103010301" }
} //Z#6
/* Africa/Addis_Ababa */ :int { 48 } //Z#7
/* Africa/Algiers */ :table {
@ -108,9 +108,9 @@ zoneinfo64:table(nofallback) {
/* Africa/Kigali */ :int { 43 } //Z#34
/* Africa/Kinshasa */ :int { 36 } //Z#35
/* Africa/Lagos */ :table {
trans:intvector { -1588464816 }
typeOffsets:intvector { 816, 0, 3600, 0 }
typeMap:bin { "01" }
trans:intvector { -2035584815, -1940889600, -1767226415, -1588465800 }
typeOffsets:intvector { 815, 0, 0, 0, 1800, 0, 3600, 0 }
typeMap:bin { "01000203" }
links:intvector { 12, 16, 25, 35, 36, 37, 39, 42, 50, 53 }
} //Z#36
/* Africa/Libreville */ :int { 36 } //Z#37
@ -134,9 +134,9 @@ zoneinfo64:table(nofallback) {
typeMap:bin { "0102" }
} //Z#47
/* Africa/Nairobi */ :table {
trans:intvector { -1309746436, -1262314800, -946780200, -315629100 }
trans:intvector { -1946168836, -1309746600, -1261969200, -1041388200, -865305900 }
typeOffsets:intvector { 8836, 0, 9000, 0, 9900, 0, 10800, 0 }
typeMap:bin { "03010203" }
typeMap:bin { "0103010203" }
links:intvector { 7, 9, 10, 23, 24, 32, 46, 48, 397, 516, 520, 525 }
} //Z#48
/* Africa/Ndjamena */ :table {
@ -318,9 +318,9 @@ zoneinfo64:table(nofallback) {
typeMap:bin { "0102010201020102010201020102010201020102010201020102010201" }
} //Z#84
/* America/Belize */ :table {
trans:intvector { -1822500432, -1616954400, -1606069800, -1585504800, -1574015400, -1554055200, -1542565800, -1522605600, -1511116200, -1490551200, -1479666600, -1459101600, -1448217000, -1427652000, -1416162600, -1396202400, -1384713000, -1364752800, -1353263400, -1333303200, -1321813800, -1301248800, -1290364200, -1269799200, -1258914600, -1238349600, -1226860200, -1206900000, -1195410600, -1175450400, -1163961000, -1143396000, -1132511400, -1111946400, -1101061800, -1080496800, -1069612200, -1049047200, -1037557800, -1017597600, -1006108200, -986148000, -974658600, -954093600, -943209000, -922644000, -911759400, -891194400, -879705000, -859744800, -848255400, 123919200, 129618000, 409039200, 413874000 }
trans:intvector { -1822500432, -1616954400, -1606069800, -1585504800, -1574015400, -1554055200, -1542565800, -1522605600, -1511116200, -1490551200, -1479666600, -1459101600, -1448217000, -1427652000, -1416162600, -1396202400, -1384713000, -1364752800, -1353263400, -1333303200, -1321813800, -1301248800, -1290364200, -1269799200, -1258914600, -1238349600, -1226860200, -1206900000, -1195410600, -1175450400, -1163961000, -1143396000, -1132511400, -1111946400, -1101061800, -1080496800, -1069612200, -1049047200, -1037557800, -1017597600, -1006108200, -986148000, -974658600, -954093600, -943209000, -922644000, -911759400, -891194400, -879705000, -868212000, -758746800, -701892000, -690402600, -670442400, -658953000, -638992800, -627503400, -606938400, -596053800, -575488800, -564604200, -544039200, -532549800, -512589600, -501100200, -481140000, -469650600, -449690400, -438201000, -417636000, -406751400, -386186400, -375301800, -354736800, -343247400, -323287200, -311797800, -291837600, -280348200, -259783200, -248898600, -228333600, -217449000, -196884000, -185999400, -165434400, -153945000, -133984800, -122495400, -102535200, -91045800, -70480800, -59596200, 123919200, 129618000, 409039200, 413874000 }
typeOffsets:intvector { -21168, 0, -21600, 0, -21600, 1800, -21600, 3600 }
typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020103010301" }
typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201030102010201020102010201020102010201020102010201020102010201020102010201020102010201020103010301" }
} //Z#85
/* America/Blanc-Sablon */ :table {
transPre32:intvector { -1, 1581070604 }
@ -510,9 +510,9 @@ zoneinfo64:table(nofallback) {
} //Z#121
/* America/Grand_Turk */ :table {
transPre32:intvector { -1, 1770462768 }
trans:intvector { -1827687170, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000, 1205046000, 1225605600, 1236495600, 1257055200, 1268550000, 1289109600, 1299999600, 1320559200, 1331449200, 1352008800, 1362898800, 1383458400, 1394348400, 1414908000, 1425798000, 1446357600, 1520751600, 1541311200 }
trans:intvector { -1827687170, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000, 1205046000, 1225605600, 1236495600, 1257055200, 1268550000, 1289109600, 1299999600, 1320559200, 1331449200, 1352008800, 1362898800, 1383458400, 1394348400, 1414908000, 1425798000, 1520751600, 1541311200 }
typeOffsets:intvector { -17072, 0, -18430, 0, -18000, 0, -18000, 3600, -14400, 0 }
typeMap:bin { "010203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203040302" }
typeMap:bin { "0102030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302040302" }
finalRule { "US" }
finalRaw:int { -18000 }
finalYear:int { 2019 }
@ -819,9 +819,9 @@ zoneinfo64:table(nofallback) {
/* America/Montreal */ :int { 218 } //Z#170
/* America/Montserrat */ :int { 187 } //Z#171
/* America/Nassau */ :table {
trans:intvector { -1825095030, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000 }
trans:intvector { -1825095030, -873140400, -788904000, -786222000, -763848000, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000 }
typeOffsets:intvector { -18570, 0, -18000, 0, -18000, 3600 }
typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
finalRule { "US" }
finalRaw:int { -18000 }
finalYear:int { 2008 }
@ -1176,7 +1176,7 @@ zoneinfo64:table(nofallback) {
} //Z#228
/* Antarctica/Macquarie */ :table {
transPre32:intvector { -1, 2080708096 }
trans:intvector { -1680508800, -1665392400, -1601719200, -687052800, -71136000, -55411200, -37267200, -25776000, -5817600, 5673600, 25632000, 37728000, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000, 1174752000, 1191686400, 1207411200, 1223136000, 1238860800, 1254585600, 1301760000, 1317484800 }
trans:intvector { -1680508800, -1665388800, -1601719200, -687052800, -71136000, -55411200, -37267200, -25776000, -5817600, 5673600, 25632000, 37728000, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000, 1174752000, 1191686400, 1207411200, 1223136000, 1238860800, 1254585600, 1301760000, 1317484800 }
typeOffsets:intvector { 0, 0, 36000, 0, 36000, 3600 }
typeMap:bin { "0102010001020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
finalRule { "AT" }
@ -1363,9 +1363,9 @@ zoneinfo64:table(nofallback) {
} //Z#268
/* Asia/Gaza */ :table {
transPre32:intvector { -1, 2109557424 }
trans:intvector { -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 334015200, 337644000, 452556000, 462232800, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1219957200, 1238104800, 1252015200, 1269640860, 1281474000, 1301608860, 1312146000, 1333058400, 1348178400, 1364508000, 1380229200, 1395957600, 1414098000, 1427493600, 1445551200, 1458946800, 1477692000, 1490396400, 1509141600, 1521846000, 1540591200, 1553810400, 1572037200, 1585346400, 1603490400 }
trans:intvector { -933638400, -923097600, -919036800, -857347200, -844300800, -825811200, -812678400, -794188800, -779846400, -762652800, -748310400, -731116800, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 334101600, 337730400, 452642400, 462319200, 482277600, 494370000, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1219957200, 1238104800, 1252015200, 1269640860, 1281474000, 1301608860, 1312146000, 1333058400, 1348178400, 1364508000, 1380229200, 1395957600, 1414098000, 1427493600, 1445551200, 1458946800, 1477692000, 1490396400, 1509141600, 1521846000, 1540591200, 1553810400, 1572037200, 1585346400, 1603490400 }
typeOffsets:intvector { 8272, 0, 7200, 0, 7200, 3600 }
typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
finalRule { "Palestine" }
finalRaw:int { 7200 }
finalYear:int { 2021 }
@ -1373,9 +1373,9 @@ zoneinfo64:table(nofallback) {
/* Asia/Harbin */ :int { 315 } //Z#270
/* Asia/Hebron */ :table {
transPre32:intvector { -1, 2109557273 }
trans:intvector { -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 334015200, 337644000, 452556000, 462232800, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1220216400, 1238104800, 1252015200, 1269554400, 1281474000, 1301608860, 1312146000, 1314655200, 1317330000, 1333058400, 1348178400, 1364508000, 1380229200, 1395957600, 1414098000, 1427493600, 1445551200, 1458946800, 1477692000, 1490396400, 1509141600, 1521846000, 1540591200, 1553810400, 1572037200, 1585346400, 1603490400 }
trans:intvector { -933638400, -923097600, -919036800, -857347200, -844300800, -825811200, -812678400, -794188800, -779846400, -762652800, -748310400, -731116800, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 334101600, 337730400, 452642400, 462319200, 482277600, 494370000, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600, 1113516000, 1128380400, 1143842400, 1158872400, 1175378400, 1189638000, 1206655200, 1220216400, 1238104800, 1252015200, 1269554400, 1281474000, 1301608860, 1312146000, 1314655200, 1317330000, 1333058400, 1348178400, 1364508000, 1380229200, 1395957600, 1414098000, 1427493600, 1445551200, 1458946800, 1477692000, 1490396400, 1509141600, 1521846000, 1540591200, 1553810400, 1572037200, 1585346400, 1603490400 }
typeOffsets:intvector { 8423, 0, 7200, 0, 7200, 3600 }
typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
finalRule { "Palestine" }
finalRaw:int { 7200 }
finalYear:int { 2021 }
@ -1415,9 +1415,9 @@ zoneinfo64:table(nofallback) {
} //Z#278
/* Asia/Jerusalem */ :table {
transPre32:intvector { -1, 1454818042 }
trans:intvector { -1641003640, -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -681962400, -673243200, -667962000, -652327200, -636426000, -622087200, -608947200, -591847200, -572486400, -558576000, -542851200, -527731200, -514425600, -490845600, -482986800, -459475200, -451537200, -428551200, -418262400, -400032000, -387428400, 142380000, 150843600, 167176800, 178664400, 334015200, 337644000, 452556000, 462232800, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 826840800, 842821200, 858895200, 874184400, 890344800, 905029200, 923011200, 936313200, 955670400, 970783200, 986770800, 1001282400, 1017356400, 1033941600, 1048806000, 1065132000, 1081292400, 1095804000, 1112313600, 1128812400, 1143763200, 1159657200, 1175212800, 1189897200, 1206662400, 1223161200, 1238112000, 1254006000, 1269561600, 1284246000, 1301616000, 1317510000, 1333065600, 1348354800, 1364515200, 1382828400 }
trans:intvector { -1641003640, -933638400, -923097600, -919036800, -857347200, -844300800, -825811200, -812678400, -794188800, -779846400, -762652800, -748310400, -731116800, -681955200, -673228800, -667958400, -652320000, -636422400, -622080000, -608947200, -591840000, -572486400, -558576000, -542851200, -527731200, -514425600, -490838400, -482976000, -459388800, -451526400, -428544000, -418262400, -400118400, -387417600, 142380000, 150843600, 167176800, 178664400, 334101600, 337730400, 452642400, 462319200, 482277600, 494370000, 516751200, 526424400, 545436000, 558478800, 576626400, 589323600, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 826840800, 842821200, 858895200, 874184400, 890344800, 905029200, 923011200, 936313200, 955670400, 970783200, 986770800, 1001282400, 1017356400, 1033941600, 1048806000, 1065132000, 1081292400, 1095804000, 1112313600, 1128812400, 1143763200, 1159657200, 1175212800, 1189897200, 1206662400, 1223161200, 1238112000, 1254006000, 1269561600, 1284246000, 1301616000, 1317510000, 1333065600, 1348354800, 1364515200, 1382828400 }
typeOffsets:intvector { 8454, 0, 7200, 0, 7200, 3600, 7200, 7200, 8440, 0 }
typeMap:bin { "040102010201020102010201030201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
typeMap:bin { "0401020102010201020102010201030201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
finalRule { "Zion" }
finalRaw:int { 7200 }
finalYear:int { 2014 }
@ -1704,9 +1704,9 @@ zoneinfo64:table(nofallback) {
finalYear:int { 1997 }
} //Z#338
/* Atlantic/Bermuda */ :table {
trans:intvector { -1262281242, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544600800, 562136400, 576050400, 594190800, 607500000, 625640400, 638949600, 657090000, 671004000, 688539600, 702453600, 719989200, 733903200, 752043600, 765352800, 783493200, 796802400, 814942800, 828856800, 846392400, 860306400, 877842000, 891756000, 909291600, 923205600, 941346000, 954655200, 972795600, 986104800, 1004245200, 1018159200, 1035694800, 1049608800, 1067144400, 1081058400, 1099198800, 1112508000, 1130648400, 1143957600, 1162098000, 1173592800, 1194152400 }
typeOffsets:intvector { -15558, 0, -14400, 0, -14400, 3600 }
typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
trans:intvector { -1664307642, -1648932042, -1632080442, -1618692042, -1262281242, -882727200, -858538800, -845229600, -825879600, -814384800, -793825200, -782935200, -762375600, -713988000, -703710000, -681933600, -672865200, -650484000, -641415600, -618429600, -609966000, -586980000, -578516400, -555530400, -546462000, -429127200, -415825200, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544600800, 562136400, 576050400, 594190800, 607500000, 625640400, 638949600, 657090000, 671004000, 688539600, 702453600, 719989200, 733903200, 752043600, 765352800, 783493200, 796802400, 814942800, 828856800, 846392400, 860306400, 877842000, 891756000, 909291600, 923205600, 941346000, 954655200, 972795600, 986104800, 1004245200, 1018159200, 1035694800, 1049608800, 1067144400, 1081058400, 1099198800, 1112508000, 1130648400, 1143957600, 1162098000, 1173592800, 1194152400 }
typeOffsets:intvector { -15558, 0, -15558, 3600, -14400, 0, -14400, 3600 }
typeMap:bin { "0100010002030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
finalRule { "US" }
finalRaw:int { -14400 }
finalYear:int { 2008 }
@ -1763,7 +1763,7 @@ zoneinfo64:table(nofallback) {
/* Australia/ACT */ :int { 368 } //Z#350
/* Australia/Adelaide */ :table {
transPre32:intvector { -1, 1930857236, -1, 2064778096 }
trans:intvector { -1672565340, -1665390600, -883639800, -876126600, -860398200, -844677000, -828343800, -813227400, 57688200, 67969800, 89137800, 100024200, 120587400, 131473800, 152037000, 162923400, 183486600, 194977800, 215541000, 226427400, 246990600, 257877000, 278440200, 289326600, 309889800, 320776200, 341339400, 352225800, 372789000, 384280200, 404843400, 415729800, 436293000, 447179400, 467742600, 478629000, 499192200, 511288200, 530037000, 542737800, 562091400, 574792200, 594145800, 606241800, 625595400, 637691400, 657045000, 667931400, 688494600, 701195400, 719944200, 731435400, 751998600, 764094600, 783448200, 796149000, 814897800, 828203400, 846347400, 859653000, 877797000, 891102600, 909246600, 922552200, 941301000, 954001800, 972750600, 985451400, 1004200200, 1017505800, 1035649800, 1048955400, 1067099400, 1080405000, 1099153800, 1111854600, 1130603400, 1143909000, 1162053000, 1174753800, 1193502600, 1207413000, 1223137800 }
trans:intvector { -1672558200, -1665387000, -883639800, -876123000, -860398200, -844673400, -828343800, -813223800, 57688200, 67969800, 89137800, 100024200, 120587400, 131473800, 152037000, 162923400, 183486600, 194977800, 215541000, 226427400, 246990600, 257877000, 278440200, 289326600, 309889800, 320776200, 341339400, 352225800, 372789000, 384280200, 404843400, 415729800, 436293000, 447179400, 467742600, 478629000, 499192200, 511288200, 530037000, 542737800, 562091400, 574792200, 594145800, 606241800, 625595400, 637691400, 657045000, 667931400, 688494600, 701195400, 719944200, 731435400, 751998600, 764094600, 783448200, 796149000, 814897800, 828203400, 846347400, 859653000, 877797000, 891102600, 909246600, 922552200, 941301000, 954001800, 972750600, 985451400, 1004200200, 1017505800, 1035649800, 1048955400, 1067099400, 1080405000, 1099153800, 1111854600, 1130603400, 1143909000, 1162053000, 1174753800, 1193502600, 1207413000, 1223137800 }
typeOffsets:intvector { 33260, 0, 32400, 0, 34200, 0, 34200, 3600 }
typeMap:bin { "01020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203" }
finalRule { "AS" }
@ -1773,14 +1773,14 @@ zoneinfo64:table(nofallback) {
} //Z#351
/* Australia/Brisbane */ :table {
transPre32:intvector { -1, 1928175368 }
trans:intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200 }
trans:intvector { -1672560000, -1665388800, -883641600, -876124800, -860400000, -844675200, -828345600, -813225600, 57686400, 67968000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200 }
typeOffsets:intvector { 36728, 0, 36000, 0, 36000, 3600 }
typeMap:bin { "0102010201020102010201020102010201" }
links:intvector { 352, 366 }
} //Z#352
/* Australia/Broken_Hill */ :table {
transPre32:intvector { -1, 1930856548, -1, 1980016096, -1, 2064778096 }
trans:intvector { -1672565340, -1665390600, -883639800, -876126600, -860398200, -844677000, -828343800, -813227400, 57688200, 67969800, 89137800, 100024200, 120587400, 131473800, 152037000, 162923400, 183486600, 194977800, 215541000, 226427400, 246990600, 257877000, 278440200, 289326600, 309889800, 320776200, 341339400, 352225800, 372789000, 386699400, 404843400, 415729800, 436293000, 447179400, 467742600, 478629000, 499192200, 511288200, 530037000, 542737800, 562091400, 574792200, 594145800, 606241800, 625595400, 636481800, 657045000, 667931400, 688494600, 699381000, 719944200, 731435400, 751998600, 762885000, 783448200, 794334600, 814897800, 828203400, 846347400, 859653000, 877797000, 891102600, 909246600, 922552200, 941301000, 954001800, 972750600, 985451400, 1004200200, 1017505800, 1035649800, 1048955400, 1067099400, 1080405000, 1099153800, 1111854600, 1130603400, 1143909000, 1162053000, 1174753800, 1193502600, 1207413000, 1223137800 }
trans:intvector { -1672558200, -1665387000, -883639800, -876123000, -860398200, -844673400, -828343800, -813223800, 57688200, 67969800, 89137800, 100024200, 120587400, 131473800, 152037000, 162923400, 183486600, 194977800, 215541000, 226427400, 246990600, 257877000, 278440200, 289326600, 309889800, 320776200, 341339400, 352225800, 372789000, 386699400, 404843400, 415729800, 436293000, 447179400, 467742600, 478629000, 499192200, 511288200, 530037000, 542737800, 562091400, 574792200, 594145800, 606241800, 625595400, 636481800, 657045000, 667931400, 688494600, 699381000, 719944200, 731435400, 751998600, 762885000, 783448200, 794334600, 814897800, 828203400, 846347400, 859653000, 877797000, 891102600, 909246600, 922552200, 941301000, 954001800, 972750600, 985451400, 1004200200, 1017505800, 1035649800, 1048955400, 1067099400, 1080405000, 1099153800, 1111854600, 1130603400, 1143909000, 1162053000, 1174753800, 1193502600, 1207413000, 1223137800 }
typeOffsets:intvector { 33948, 0, 32400, 0, 34200, 0, 34200, 3600, 36000, 0 }
typeMap:bin { "0401020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203" }
finalRule { "AS" }
@ -1789,42 +1789,34 @@ zoneinfo64:table(nofallback) {
links:intvector { 353, 372 }
} //Z#353
/* Australia/Canberra */ :int { 368 } //Z#354
/* Australia/Currie */ :table {
transPre32:intvector { -1, 1949172768 }
trans:intvector { -1680508800, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000, 1174752000, 1191686400, 1207411200, 1223136000 }
typeOffsets:intvector { 34528, 0, 36000, 0, 36000, 3600 }
typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
finalRule { "AT" }
finalRaw:int { 36000 }
finalYear:int { 2009 }
} //Z#355
/* Australia/Currie */ :int { 358 } //Z#355
/* Australia/Darwin */ :table {
transPre32:intvector { -1, 1930859096, -1, 2064778096 }
trans:intvector { -1672565340, -1665390600, -883639800, -876126600, -860398200, -844677000, -828343800, -813227400 }
trans:intvector { -1672558200, -1665387000, -883639800, -876123000, -860398200, -844673400, -828343800, -813223800 }
typeOffsets:intvector { 31400, 0, 32400, 0, 34200, 0, 34200, 3600 }
typeMap:bin { "01020302030203020302" }
links:intvector { 0, 356, 364 }
} //Z#356
/* Australia/Eucla */ :table {
transPre32:intvector { -1, 1957038768 }
trans:intvector { -1672562640, -1665387900, -883637100, -876123900, -860395500, -844674300, 152039700, 162926100, 436295700, 447182100, 690311700, 699383700, 1165079700, 1174756500, 1193505300, 1206810900, 1224954900, 1238260500 }
trans:intvector { -1672555500, -1665384300, -883637100, -876120300, -860395500, -844670700, 152039700, 162926100, 436295700, 447182100, 690311700, 699383700, 1165079700, 1174756500, 1193505300, 1206810900, 1224954900, 1238260500 }
typeOffsets:intvector { 30928, 0, 31500, 0, 31500, 3600 }
typeMap:bin { "01020102010201020102010201020102010201" }
} //Z#357
/* Australia/Hobart */ :table {
transPre32:intvector { -1, 1949171940 }
trans:intvector { -1680508800, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, -71136000, -55411200, -37267200, -25776000, -5817600, 5673600, 25632000, 37728000, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000, 1174752000, 1191686400, 1207411200, 1223136000 }
trans:intvector { -1680508800, -1665388800, -1646640000, -1635753600, -1615190400, -1604304000, -883641600, -876124800, -860400000, -844675200, -828345600, -813225600, -71136000, -55411200, -37267200, -25776000, -5817600, 5673600, 25632000, 37728000, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000, 1174752000, 1191686400, 1207411200, 1223136000 }
typeOffsets:intvector { 35356, 0, 36000, 0, 36000, 3600 }
typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
finalRule { "AT" }
finalRaw:int { 36000 }
finalYear:int { 2009 }
links:intvector { 358, 369 }
links:intvector { 355, 358, 369 }
} //Z#358
/* Australia/LHI */ :int { 361 } //Z#359
/* Australia/Lindeman */ :table {
transPre32:intvector { -1, 1928176340 }
trans:intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200 }
trans:intvector { -1672560000, -1665388800, -883641600, -876124800, -860400000, -844675200, -828345600, -813225600, 57686400, 67968000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200 }
typeOffsets:intvector { 35756, 0, 36000, 0, 36000, 3600 }
typeMap:bin { "010201020102010201020102010201020102010201" }
} //Z#360
@ -1840,7 +1832,7 @@ zoneinfo64:table(nofallback) {
} //Z#361
/* Australia/Melbourne */ :table {
transPre32:intvector { -1, 1930855704 }
trans:intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 384278400, 404841600, 415728000, 436291200, 447177600, 467740800, 478627200, 499190400, 511286400, 530035200, 542736000, 561484800, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200, 783446400, 796147200, 814896000, 828201600, 846345600, 859651200, 877795200, 891100800, 909244800, 922550400, 941299200, 954000000, 967305600, 985449600, 1004198400, 1017504000, 1035648000, 1048953600, 1067097600, 1080403200, 1099152000, 1111852800, 1130601600, 1143907200, 1162051200, 1174752000, 1193500800, 1207411200, 1223136000 }
trans:intvector { -1672560000, -1665388800, -883641600, -876124800, -860400000, -844675200, -828345600, -813225600, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 384278400, 404841600, 415728000, 436291200, 447177600, 467740800, 478627200, 499190400, 511286400, 530035200, 542736000, 561484800, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200, 783446400, 796147200, 814896000, 828201600, 846345600, 859651200, 877795200, 891100800, 909244800, 922550400, 941299200, 954000000, 967305600, 985449600, 1004198400, 1017504000, 1035648000, 1048953600, 1067097600, 1080403200, 1099152000, 1111852800, 1130601600, 1143907200, 1162051200, 1174752000, 1193500800, 1207411200, 1223136000 }
typeOffsets:intvector { 34792, 0, 36000, 0, 36000, 3600 }
typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
finalRule { "AV" }
@ -1852,7 +1844,7 @@ zoneinfo64:table(nofallback) {
/* Australia/North */ :int { 356 } //Z#364
/* Australia/Perth */ :table {
transPre32:intvector { -1, 1957041892 }
trans:intvector { -1672559940, -1665385200, -883634400, -876121200, -860392800, -844671600, 152042400, 162928800, 436298400, 447184800, 690314400, 699386400, 1165082400, 1174759200, 1193508000, 1206813600, 1224957600, 1238263200 }
trans:intvector { -1672552800, -1665381600, -883634400, -876117600, -860392800, -844668000, 152042400, 162928800, 436298400, 447184800, 690314400, 699386400, 1165082400, 1174759200, 1193508000, 1206813600, 1224957600, 1238263200 }
typeOffsets:intvector { 27804, 0, 28800, 0, 28800, 3600 }
typeMap:bin { "01020102010201020102010201020102010201" }
links:intvector { 365, 371 }
@ -1861,7 +1853,7 @@ zoneinfo64:table(nofallback) {
/* Australia/South */ :int { 351 } //Z#367
/* Australia/Sydney */ :table {
transPre32:intvector { -1, 1930854204 }
trans:intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386697600, 404841600, 415728000, 436291200, 447177600, 467740800, 478627200, 499190400, 511286400, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200, 783446400, 794332800, 814896000, 828201600, 846345600, 859651200, 877795200, 891100800, 909244800, 922550400, 941299200, 954000000, 967305600, 985449600, 1004198400, 1017504000, 1035648000, 1048953600, 1067097600, 1080403200, 1099152000, 1111852800, 1130601600, 1143907200, 1162051200, 1174752000, 1193500800, 1207411200, 1223136000 }
trans:intvector { -1672560000, -1665388800, -883641600, -876124800, -860400000, -844675200, -828345600, -813225600, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386697600, 404841600, 415728000, 436291200, 447177600, 467740800, 478627200, 499190400, 511286400, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200, 783446400, 794332800, 814896000, 828201600, 846345600, 859651200, 877795200, 891100800, 909244800, 922550400, 941299200, 954000000, 967305600, 985449600, 1004198400, 1017504000, 1035648000, 1048953600, 1067097600, 1080403200, 1099152000, 1111852800, 1130601600, 1143907200, 1162051200, 1174752000, 1193500800, 1207411200, 1223136000 }
typeOffsets:intvector { 36292, 0, 36000, 0, 36000, 3600 }
typeMap:bin { "010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102" }
finalRule { "AN" }
@ -2390,9 +2382,9 @@ zoneinfo64:table(nofallback) {
finalYear:int { 2004 }
} //Z#497
/* Europe/Volgograd */ :table {
trans:intvector { -1577761060, -1247540400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591145200, 606870000, 622594800, 638319600, 654649200, 670374000, 701820000, 717548400, 733273200, 748998000, 764722800, 780447600, 796172400, 811897200, 828226800, 846370800, 859676400, 877820400, 891126000, 909270000, 922575600, 941324400, 954025200, 972774000, 985474800, 1004223600, 1017529200, 1035673200, 1048978800, 1067122800, 1080428400, 1099177200, 1111878000, 1130626800, 1143327600, 1162076400, 1174777200, 1193526000, 1206831600, 1224975600, 1238281200, 1256425200, 1269730800, 1288479600, 1301180400, 1414274400, 1540681200 }
trans:intvector { -1577761060, -1247540400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591145200, 606870000, 622594800, 638319600, 654649200, 670374000, 701820000, 717548400, 733273200, 748998000, 764722800, 780447600, 796172400, 811897200, 828226800, 846370800, 859676400, 877820400, 891126000, 909270000, 922575600, 941324400, 954025200, 972774000, 985474800, 1004223600, 1017529200, 1035673200, 1048978800, 1067122800, 1080428400, 1099177200, 1111878000, 1130626800, 1143327600, 1162076400, 1174777200, 1193526000, 1206831600, 1224975600, 1238281200, 1256425200, 1269730800, 1288479600, 1301180400, 1414274400, 1540681200, 1609020000 }
typeOffsets:intvector { 10660, 0, 10800, 0, 10800, 3600, 14400, 0, 14400, 3600 }
typeMap:bin { "01030403040304030403040304030403020102010201030201020102010201020102010201020102010201020102010201020102010201020102010201030103" }
typeMap:bin { "0103040304030403040304030403040302010201020103020102010201020102010201020102010201020102010201020102010201020102010201020103010301" }
} //Z#498
/* Europe/Warsaw */ :table {
trans:intvector { -1717032240, -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -1600473600, -1587168000, -1501725600, -931734000, -857257200, -844556400, -828226800, -812502000, -796608000, -778726800, -762660000, -748486800, -733273200, -715215600, -701910000, -684975600, -670460400, -654130800, -639010800, -397094400, -386812800, -371088000, -355363200, -334195200, -323308800, -307584000, -291859200, -271296000, -260409600, -239846400, -228960000, -208396800, -197510400, -176342400, -166060800, 228873600, 243993600, 260323200, 276048000, 291772800, 307497600, 323827200, 338947200, 354672000, 370396800, 386121600, 401846400, 417571200, 433296000, 449020800, 465350400, 481075200, 496800000, 512524800, 528249600, 543974400, 559699200, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400, 828234000, 846378000 }
@ -2463,7 +2455,7 @@ zoneinfo64:table(nofallback) {
typeMap:bin { "01" }
} //Z#521
/* Indian/Mahe */ :table {
trans:intvector { -2006653308 }
trans:intvector { -1988163708 }
typeOffsets:intvector { 13308, 0, 14400, 0 }
typeMap:bin { "01" }
} //Z#522
@ -2584,9 +2576,9 @@ zoneinfo64:table(nofallback) {
links:intvector { 395, 557 }
} //Z#557
/* Pacific/Efate */ :table {
trans:intvector { -1829387596, 433256400, 448977600, 467298000, 480427200, 496760400, 511876800, 528210000, 543931200, 559659600, 575380800, 591109200, 606830400, 622558800, 638280000, 654008400, 669729600, 686062800, 696340800, 719931600, 727790400 }
trans:intvector { -1829387596, 125409600, 133876800, 433256400, 448977600, 464706000, 480427200, 496760400, 511876800, 528210000, 543931200, 559659600, 575380800, 591109200, 606830400, 622558800, 638280000, 654008400, 669729600, 686062800, 696340800, 719931600, 727790400 }
typeOffsets:intvector { 40396, 0, 39600, 0, 39600, 3600 }
typeMap:bin { "010201020102010201020102010201020102010201" }
typeMap:bin { "0102010201020102010201020102010201020102010201" }
} //Z#558
/* Pacific/Enderbury */ :table {
transPre32:intvector { -1, 2117555556 }

View file

@ -231,6 +231,13 @@ static const int32_t gFieldRangeBias[] = {
static const int32_t HEBREW_CAL_CUR_MILLENIUM_START_YEAR = 5000;
static const int32_t HEBREW_CAL_CUR_MILLENIUM_END_YEAR = 6000;
/**
* Maximum range for detecting daylight offset of a time zone when parsed time zone
* string indicates it's daylight saving time, but the detected time zone does not
* observe daylight saving time at the parsed date.
*/
static const double MAX_DAYLIGHT_DETECTION_RANGE = 30*365*24*60*60*1000.0;
static UMutex LOCK;
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SimpleDateFormat)
@ -2575,51 +2582,47 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition&
} else { // tztype == TZTYPE_DST
if (dst == 0) {
if (btz != NULL) {
UDate time = localMillis + raw;
// We use the nearest daylight saving time rule.
TimeZoneTransition beforeTrs, afterTrs;
UDate beforeT = time, afterT = time;
int32_t beforeSav = 0, afterSav = 0;
UBool beforeTrsAvail, afterTrsAvail;
// This implementation resolves daylight saving time offset
// closest rule after the given time.
UDate baseTime = localMillis + raw;
UDate time = baseTime;
UDate limit = baseTime + MAX_DAYLIGHT_DETECTION_RANGE;
TimeZoneTransition trs;
UBool trsAvail;
// Search for DST rule before or on the time
while (TRUE) {
beforeTrsAvail = btz->getPreviousTransition(beforeT, TRUE, beforeTrs);
if (!beforeTrsAvail) {
// Search for DST rule after the given time
while (time < limit) {
trsAvail = btz->getNextTransition(time, FALSE, trs);
if (!trsAvail) {
break;
}
beforeT = beforeTrs.getTime() - 1;
beforeSav = beforeTrs.getFrom()->getDSTSavings();
if (beforeSav != 0) {
resolvedSavings = trs.getTo()->getDSTSavings();
if (resolvedSavings != 0) {
break;
}
time = trs.getTime();
}
// Search for DST rule after the time
while (TRUE) {
afterTrsAvail = btz->getNextTransition(afterT, FALSE, afterTrs);
if (!afterTrsAvail) {
break;
if (resolvedSavings == 0) {
// If no DST rule after the given time was found, search for
// DST rule before.
time = baseTime;
limit = baseTime - MAX_DAYLIGHT_DETECTION_RANGE;
while (time > limit) {
trsAvail = btz->getPreviousTransition(time, TRUE, trs);
if (!trsAvail) {
break;
}
resolvedSavings = trs.getFrom()->getDSTSavings();
if (resolvedSavings != 0) {
break;
}
time = trs.getTime() - 1;
}
afterT = afterTrs.getTime();
afterSav = afterTrs.getTo()->getDSTSavings();
if (afterSav != 0) {
break;
}
}
if (beforeTrsAvail && afterTrsAvail) {
if (time - beforeT > afterT - time) {
resolvedSavings = afterSav;
} else {
resolvedSavings = beforeSav;
if (resolvedSavings == 0) {
resolvedSavings = btz->getDSTSavings();
}
} else if (beforeTrsAvail && beforeSav != 0) {
resolvedSavings = beforeSav;
} else if (afterTrsAvail && afterSav != 0) {
resolvedSavings = afterSav;
} else {
resolvedSavings = btz->getDSTSavings();
}
} else {
resolvedSavings = tz.getDSTSavings();

View file

@ -86,6 +86,7 @@ TimeZoneFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &name
TESTCASE(6, TestFormatCustomZone);
TESTCASE(7, TestFormatTZDBNamesAllZoneCoverage);
TESTCASE(8, TestAdoptDefaultThreadSafe);
TESTCASE(9, TestCentralTime);
default: name = ""; break;
}
}
@ -1340,4 +1341,57 @@ TimeZoneFormatTest::TestFormatTZDBNamesAllZoneCoverage(void) {
}
}
}
// Test for checking parse results are same for a same input string
// using SimpleDateFormat initialized with different regional locales - US and Belize.
// Belize did not observe DST from 1968 to 1973, 1975 to 1982, and 1985 and later.
void
TimeZoneFormatTest::TestCentralTime(void) {
UnicodeString pattern(u"y-MM-dd HH:mm:ss zzzz");
UnicodeString testInputs[] = {
// 1970-01-01 - Chicago:STD/Belize:STD
u"1970-01-01 12:00:00 Central Standard Time",
u"1970-01-01 12:00:00 Central Daylight Time",
// 1970-07-01 - Chicago:STD/Belize:STD
u"1970-07-01 12:00:00 Central Standard Time",
u"1970-07-01 12:00:00 Central Daylight Time",
// 1974-01-01 - Chicago:STD/Belize:DST
u"1974-01-01 12:00:00 Central Standard Time",
u"1974-01-01 12:00:00 Central Daylight Time",
// 2020-01-01 - Chicago:STD/Belize:STD
u"2020-01-01 12:00:00 Central Standard Time",
u"2020-01-01 12:00:00 Central Daylight Time",
// 2020-01-01 - Chicago:DST/Belize:STD
u"2020-07-01 12:00:00 Central Standard Time",
u"2020-07-01 12:00:00 Central Daylight Time",
u""
};
UErrorCode status = U_ZERO_ERROR;
SimpleDateFormat sdfUS(pattern, Locale("en_US"), status);
SimpleDateFormat sdfBZ(pattern, Locale("en_BZ"), status);
if (U_FAILURE(status)) {
errln("Failed to create SimpleDateFormat instance");
return;
}
for (int32_t i = 0; !testInputs[i].isEmpty(); i++) {
UDate dUS = sdfUS.parse(testInputs[i], status);
UDate dBZ = sdfBZ.parse(testInputs[i], status);
if (U_FAILURE(status)) {
errln((UnicodeString)"Failed to parse date string: " + testInputs[i]);
continue;
}
if (dUS != dBZ) {
errln((UnicodeString)"Parse results should be same for input: " + testInputs[i]);
}
}
}
#endif /* #if !UCONFIG_NO_FORMATTING */

View file

@ -30,6 +30,7 @@ class TimeZoneFormatTest : public IntlTest {
void TestFormatCustomZone(void);
void TestFormatTZDBNamesAllZoneCoverage(void);
void TestAdoptDefaultThreadSafe(void);
void TestCentralTime(void);
void RunTimeRoundTripTests(int32_t threadNumber);
void RunAdoptDefaultThreadSafeTests(int32_t threadNumber);

View file

@ -2074,6 +2074,8 @@ void TimeZoneTest::TestCanonicalID() {
{"Asia/Vientiane", "Asia/Bangkok"},
{"Atlantic/Jan_Mayen", "Europe/Oslo"},
{"Atlantic/St_Helena", "Africa/Abidjan"},
{"Australia/Currie", "Australia/Hobart"},
{"Australia/Tasmania", "Australia/Hobart"},
{"Europe/Bratislava", "Europe/Prague"},
{"Europe/Busingen", "Europe/Zurich"},
{"Europe/Guernsey", "Europe/London"},

View file

@ -2380,6 +2380,13 @@ public class SimpleDateFormat extends DateFormat {
|| (count <= 2 && NUMERIC_FORMAT_CHARS2.indexOf(formatChar) >= 0);
}
/**
* Maximum range for detecting daylight offset of a time zone when parsed time zone
* string indicates it's daylight saving time, but the detected time zone does not
* observe daylight saving time at the parsed date.
*/
private static final long MAX_DAYLIGHT_DETECTION_RANGE = 30*365*24*60*60*1000L;
/**
* Overrides DateFormat
* @see DateFormat
@ -2735,50 +2742,46 @@ public class SimpleDateFormat extends DateFormat {
} else { // tztype == TZTYPE_DST
if (offsets[1] == 0) {
if (btz != null) {
long time = localMillis + offsets[0];
// We use the nearest daylight saving time rule.
TimeZoneTransition beforeTrs, afterTrs;
long beforeT = time, afterT = time;
int beforeSav = 0, afterSav = 0;
// This implementation resolves daylight saving time offset
// closest rule after the given time.
long baseTime = localMillis + offsets[0];
long time = baseTime;
long limit = baseTime + MAX_DAYLIGHT_DETECTION_RANGE;
TimeZoneTransition trs = null;
// Search for DST rule before or on the time
while (true) {
beforeTrs = btz.getPreviousTransition(beforeT, true);
if (beforeTrs == null) {
// Search for DST rule after the given time
while (time < limit) {
trs = btz.getNextTransition(time, false);
if (trs == null) {
break;
}
beforeT = beforeTrs.getTime() - 1;
beforeSav = beforeTrs.getFrom().getDSTSavings();
if (beforeSav != 0) {
resolvedSavings = trs.getTo().getDSTSavings();
if (resolvedSavings != 0) {
break;
}
time = trs.getTime();
}
// Search for DST rule after the time
while (true) {
afterTrs = btz.getNextTransition(afterT, false);
if (afterTrs == null) {
break;
if (resolvedSavings == 0) {
// If no DST rule after the given time was found, search for
// DST rule before.
time = baseTime;
limit = baseTime - MAX_DAYLIGHT_DETECTION_RANGE;
while (time > limit) {
trs = btz.getPreviousTransition(time, true);
if (trs == null) {
break;
}
resolvedSavings = trs.getFrom().getDSTSavings();
if (resolvedSavings != 0) {
break;
}
time = trs.getTime() - 1;
}
afterT = afterTrs.getTime();
afterSav = afterTrs.getTo().getDSTSavings();
if (afterSav != 0) {
break;
}
}
if (beforeTrs != null && afterTrs != null) {
if (time - beforeT > afterT - time) {
resolvedSavings = afterSav;
} else {
resolvedSavings = beforeSav;
if (resolvedSavings == 0) {
resolvedSavings = btz.getDSTSavings();
}
} else if (beforeTrs != null && beforeSav != 0) {
resolvedSavings = beforeSav;
} else if (afterTrs != null && afterSav != 0) {
resolvedSavings = afterSav;
} else {
resolvedSavings = btz.getDSTSavings();
}
} else {
resolvedSavings = tz.getDSTSavings();

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3ed9607128c66bdca1458201bb1bd30e60d40fa024ce7c42f531e3930ebe2b12
size 94662
oid sha256:6ae4e00ad4101373226842c53ffda26ba476dfd3487926b2c20a5117f386417c
size 95066

View file

@ -385,7 +385,7 @@ public class TimeZoneFormatTest extends TestFmwk {
Set<String> ids = null;
if (JDKTZ) {
ids = new TreeSet<String>();
ids = new TreeSet<>();
String[] jdkIDs = java.util.TimeZone.getAvailableIDs();
for (String jdkID : jdkIDs) {
if (EXCL_TZ_PATTERN.matcher(jdkID).matches()) {
@ -659,7 +659,7 @@ public class TimeZoneFormatTest extends TestFmwk {
TimeType expType = (TimeType)test[7];
TimeZoneFormat tzfmt = TimeZoneFormat.getInstance(loc);
Output<TimeType> timeType = new Output<TimeType>(TimeType.UNKNOWN);
Output<TimeType> timeType = new Output<>(TimeType.UNKNOWN);
ParsePosition pos = new ParsePosition(inPos);
TimeZone tz = tzfmt.parse(style, text, pos, options, timeType);
@ -950,7 +950,7 @@ public class TimeZoneFormatTest extends TestFmwk {
for (Object[] testCase : TESTDATA) {
TimeZone tz = TimeZone.getTimeZone((String)testCase[1]);
Output<TimeType> timeType = new Output<TimeType>();
Output<TimeType> timeType = new Output<>();
ULocale uloc = new ULocale((String)testCase[0]);
TimeZoneFormat tzfmt = TimeZoneFormat.getInstance(uloc);
@ -1046,7 +1046,7 @@ public class TimeZoneFormatTest extends TestFmwk {
tzfmt.setTimeZoneNames(tzdbNames);
TimeZone tz = TimeZone.getTimeZone((String)testCase[1]);
Output<TimeType> timeType = new Output<TimeType>();
Output<TimeType> timeType = new Output<>();
String out = tzfmt.format((Style)testCase[3], tz, ((Date)testCase[2]).getTime(), timeType);
if (!out.equals(testCase[4]) || timeType.value != testCase[5]) {
@ -1102,7 +1102,7 @@ public class TimeZoneFormatTest extends TestFmwk {
public void TestTZDBNamesThreading() {
final TZDBTimeZoneNames names = new TZDBTimeZoneNames(ULocale.ENGLISH);
final AtomicInteger found = new AtomicInteger();
List<Thread> threads = new ArrayList<Thread>();
List<Thread> threads = new ArrayList<>();
final int numIteration = 1000;
try {
@ -1315,4 +1315,42 @@ public class TimeZoneFormatTest extends TestFmwk {
assertEquals("MatchInfo constructor exception", "matchLength must be positive value", e.getMessage());
}
}
// Test for checking parse results are same for a same input string
// using SimpleDateFormat initialized with different regional locales - US and Belize.
// Belize did not observe DST from 1968 to 1973, 1975 to 1982, and 1985 and later.
@Test
public void TestCentralTime() throws ParseException {
final String pattern = "y-MM-dd HH:mm:ss zzzz";
final String[] testInputs = {
// 1970-01-01 - Chicago:STD/Belize:STD
"1970-01-01 12:00:00 Central Standard Time",
"1970-01-01 12:00:00 Central Daylight Time",
// 1970-07-01 - Chicago:STD/Belize:STD
"1970-07-01 12:00:00 Central Standard Time",
"1970-07-01 12:00:00 Central Daylight Time",
// 1974-01-01 - Chicago:STD/Belize:DST
"1974-01-01 12:00:00 Central Standard Time",
"1974-01-01 12:00:00 Central Daylight Time",
// 2020-01-01 - Chicago:STD/Belize:STD
"2020-01-01 12:00:00 Central Standard Time",
"2020-01-01 12:00:00 Central Daylight Time",
// 2020-01-01 - Chicago:DST/Belize:STD
"2020-07-01 12:00:00 Central Standard Time",
"2020-07-01 12:00:00 Central Daylight Time",
};
SimpleDateFormat sdfUS = new SimpleDateFormat(pattern, new ULocale("en_US"));
SimpleDateFormat sdfBZ = new SimpleDateFormat(pattern, new ULocale("en_BZ"));
for (String testInput : testInputs) {
Date dUS = sdfUS.parse(testInput);
Date dBZ = sdfBZ.parse(testInput);
assertEquals("Parse results should be same for input: " + testInput, dUS, dBZ);
}
}
}

View file

@ -1572,6 +1572,8 @@ public class TimeZoneTest extends TestFmwk
{"Asia/Vientiane", "Asia/Bangkok"},
{"Atlantic/Jan_Mayen", "Europe/Oslo"},
{"Atlantic/St_Helena", "Africa/Abidjan"},
{"Australia/Currie", "Australia/Hobart"},
{"Australia/Tasmania", "Australia/Hobart"},
{"Europe/Bratislava", "Europe/Prague"},
{"Europe/Busingen", "Europe/Zurich"},
{"Europe/Guernsey", "Europe/London"},