1*2fd832c6SAndroid Build Coastguard Worker### 2022a rev. 2 2*2fd832c6SAndroid Build Coastguard Worker 3*2fd832c6SAndroid Build Coastguard WorkerTZDB 2022b introduces `Europe/Kyiv` and merges more time zones which were 4*2fd832c6SAndroid Build Coastguard Workeralike since 1970. These changes require ICU patches. 5*2fd832c6SAndroid Build Coastguard Worker 6*2fd832c6SAndroid Build Coastguard WorkerThough the reason why 2022b was released are changes in Chile. As they have 7*2fd832c6SAndroid Build Coastguard Workerto be delivered by the 3rd of September and ICU patches are not ready, 8*2fd832c6SAndroid Build Coastguard Workerdecision was made to prepare smaller release which does not need ICU patches. 9*2fd832c6SAndroid Build Coastguard Worker 10*2fd832c6SAndroid Build Coastguard Workertzdata archieve is prepared manually by applying Iran and Chile changes on 11*2fd832c6SAndroid Build Coastguard Workertop of 2022a tag. 12*2fd832c6SAndroid Build Coastguard Worker 13*2fd832c6SAndroid Build Coastguard Worker 14*2fd832c6SAndroid Build Coastguard Worker### 2022a 15*2fd832c6SAndroid Build Coastguard Worker 16*2fd832c6SAndroid Build Coastguard WorkerThis update includes pre-1970 17*2fd832c6SAndroid Build Coastguard Worker[changes](https://github.com/eggert/tz/commit/1edbb16e933a6ba6dceefd2bd7057b5ce00dd13c) 18*2fd832c6SAndroid Build Coastguard Workerwhich were reverted manually in Android and resulted in Android releasing 19*2fd832c6SAndroid Build Coastguard Workerupdates we called `2021a rev 2` and `2021a rev 3` instead of tracking TZDB's 20*2fd832c6SAndroid Build Coastguard Worker`2021b` and `2021c` releases. Android has made changes to reduce the impact of 21*2fd832c6SAndroid Build Coastguard Workerthese changes. This might have app compat issues as some methods in Android's 22*2fd832c6SAndroid Build Coastguard WorkerICU4J APIs such as `TimeZone.getCanonicalID(id)` will return different time 23*2fd832c6SAndroid Build Coastguard Workerzone IDs than before. After this release, the canonical zone IDs returned will 24*2fd832c6SAndroid Build Coastguard Workerbe different for some input IDs, and will more often be associated with 25*2fd832c6SAndroid Build Coastguard Workerdifferent regions. 26*2fd832c6SAndroid Build Coastguard Worker 27*2fd832c6SAndroid Build Coastguard Worker`Africa/Casablanca` is a time zone modelled by the TZDB using a negative DST 28*2fd832c6SAndroid Build Coastguard Workersaving to represent the period of Ramadan. Several of Android's embedded time 29*2fd832c6SAndroid Build Coastguard Workerlibraries do not support negative DST savings, so we use TZDB's rearguard 30*2fd832c6SAndroid Build Coastguard Workerformat, which flips standard and daylight saving time definitions for affected 31*2fd832c6SAndroid Build Coastguard Workerzones. Also, `Africa/Casablanca` transitions follow lunar calendar, which 32*2fd832c6SAndroid Build Coastguard Workeris not supported by TZif format so transitions are pre-generated (as of now up 33*2fd832c6SAndroid Build Coastguard Workerto year 2087). As they are pre-generated, the last transition is used for dates 34*2fd832c6SAndroid Build Coastguard Workerafter 2087. Before `2022a`, in rearguard format that last transition was from 35*2fd832c6SAndroid Build Coastguard Workerstandard to daylight saving time. Having DST throughout the year might break 36*2fd832c6SAndroid Build Coastguard Workerassumptions in software, so as of `2022a` the last transition is marked as 37*2fd832c6SAndroid Build Coastguard Workerstandard time, even though its offset differs from standard time offset used in 38*2fd832c6SAndroid Build Coastguard Workerprior transitions. 39*2fd832c6SAndroid Build Coastguard Worker 40*2fd832c6SAndroid Build Coastguard WorkerA standard-to-standard time transition breaks DST saving logic in 41*2fd832c6SAndroid Build Coastguard WorkerAndroid's `java.util.TimeZone.getDSTSavings()` - it returns 0 instead of 1 hour. 42*2fd832c6SAndroid Build Coastguard Worker`input_data/iana/tzdb2022a.tar.gz` has [commit](https://github.com/eggert/tz/commit/cec7d9e2e83f8a3faa2367e0d45383a1557889ed) 43*2fd832c6SAndroid Build Coastguard Workerreverted to bring back the old TZif file. There is no fix yet, it will be like 44*2fd832c6SAndroid Build Coastguard Workerthat indefinitely. 45*2fd832c6SAndroid Build Coastguard Worker 46*2fd832c6SAndroid Build Coastguard WorkerThe main reason for the TZDB `2022a` release is a change to the DST transition 47*2fd832c6SAndroid Build Coastguard Workerfor Palestine on 27 Mar 2022. In addition to this year's change, future 48*2fd832c6SAndroid Build Coastguard Workerpredictions have also been [adjusted](https://github.com/eggert/tz/commit/59467e3373a2f90aae3a3c9684ab527855922427) 49*2fd832c6SAndroid Build Coastguard Workerso the DST transitions for future years are also affected. 50*2fd832c6SAndroid Build Coastguard Worker 51*2fd832c6SAndroid Build Coastguard Worker 52*2fd832c6SAndroid Build Coastguard Worker### 2021 rev. 3 53*2fd832c6SAndroid Build Coastguard Worker 54*2fd832c6SAndroid Build Coastguard WorkerLike 2021 rev.2 this release is also different from regular updates. It is 55*2fd832c6SAndroid Build Coastguard Workerclosely correlated with IANA's `2021d` and `2021e`. See below for more details. 56*2fd832c6SAndroid Build Coastguard Worker 57*2fd832c6SAndroid Build Coastguard WorkerTZDB version `2021c` reverted most (but not all) time zone merges from `2021b`. 58*2fd832c6SAndroid Build Coastguard WorkerAs Android has not applied any of them and there were no other rules update, 59*2fd832c6SAndroid Build Coastguard Workerit is a no-op for Android. 60*2fd832c6SAndroid Build Coastguard Worker 61*2fd832c6SAndroid Build Coastguard WorkerThen TZDB version `2021d` was released with Fiji changes. That corresponds to 62*2fd832c6SAndroid Build Coastguard WorkerICU's `2021a2`. But `2021a2` also picked up a 63*2fd832c6SAndroid Build Coastguard Worker`"Link America/Panama America/Coral_Harbour"` change from IANA's TZDB release 64*2fd832c6SAndroid Build Coastguard Workerin the backward file. 65*2fd832c6SAndroid Build Coastguard Worker 66*2fd832c6SAndroid Build Coastguard WorkerICU's `2021a3` is `2021a2` with Palestine changes. No extra change there. 67*2fd832c6SAndroid Build Coastguard Worker 68*2fd832c6SAndroid Build Coastguard Worker`tzdata2021a.tar.gz` in this Android TZDB update is ICU's [`tzdata2021a3.tar.gz`](https://github.com/unicode-org/icu-data/blob/d90a4eed92e3c5221c4dc1977bfdb7c072a8bb3d/tzdata/tzdata_patch/tzdata2021a3.tar.gz) 69*2fd832c6SAndroid Build Coastguard Workerwith `Link` change mention above reverted. Not reverting it will put 70*2fd832c6SAndroid Build Coastguard Worker`America/Coral_Harbour` under Panama in `tzlookup.xml`. Right approach here 71*2fd832c6SAndroid Build Coastguard Workeris to update tooling, but that will take some time. 72*2fd832c6SAndroid Build Coastguard Worker 73*2fd832c6SAndroid Build Coastguard Worker 74*2fd832c6SAndroid Build Coastguard Worker### 2021a rev. 2 75*2fd832c6SAndroid Build Coastguard Worker 76*2fd832c6SAndroid Build Coastguard WorkerIn `2021b` several time zones which were alike since 1970 were merged. It 77*2fd832c6SAndroid Build Coastguard Workerreceived backlash in tz mailing-list. Please check 78*2fd832c6SAndroid Build Coastguard Worker[September archive](https://mm.icann.org/pipermail/tz/2021-September/thread.html) 79*2fd832c6SAndroid Build Coastguard Workerfor discussions around the merges. 80*2fd832c6SAndroid Build Coastguard Worker 81*2fd832c6SAndroid Build Coastguard WorkerThis contains a subset of the updates from IANA's 2021b update, but not all 82*2fd832c6SAndroid Build Coastguard Workerbecause they cause problems for various libraries and OSes, Android included. 83*2fd832c6SAndroid Build Coastguard WorkerNew links cause problems for the tzlookup.xml generation process, which have 84*2fd832c6SAndroid Build Coastguard Workeryet to be resolved. Android API behavior is influenced by ICU, so while ICU 85*2fd832c6SAndroid Build Coastguard Workerare forked and until things become clearer, so is Android. 86*2fd832c6SAndroid Build Coastguard Worker 87*2fd832c6SAndroid Build Coastguard WorkerICU decided to skip zone merge changes and named their release `2021a1`. 88*2fd832c6SAndroid Build Coastguard WorkerUnfortunately there are hardcoded places in Android which expect tzdb version 89*2fd832c6SAndroid Build Coastguard Workerto be exactly 5 characters and we release it as `2021a rev. 2`. 90*2fd832c6SAndroid Build Coastguard Worker 91*2fd832c6SAndroid Build Coastguard Worker`input_data/iana/tzdata2021a.tar.gz` is renamed ICU's `2021a1.tar.gz`. As it 92*2fd832c6SAndroid Build Coastguard Workeris not signed, `tzdata2021a.tar.gz.asc` was deleted for this release only. 93*2fd832c6SAndroid Build Coastguard Worker 94*2fd832c6SAndroid Build Coastguard Worker`2021a1` contains the following changes applied on top of `2021a`: 95*2fd832c6SAndroid Build Coastguard Worker``` 96*2fd832c6SAndroid Build Coastguard Worker# Portugal observed DST in 1950 97*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/ed2f9d6b01d1256a4d463d2ceb953e15e1673d72 98*2fd832c6SAndroid Build Coastguard Worker# Fix Guyana LMT and later historical transitions 99*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/0252f09cdff3769ecbf6adfdaf6c47055bbfb74b 100*2fd832c6SAndroid Build Coastguard Worker# Add Barbados DST 1942-1944, fix end of LMT 101*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/42efb563b8224a20c1a6480b38427e5b4634da36 102*2fd832c6SAndroid Build Coastguard Worker# Backzone fixes for Gambia, Malawi, Sierra Leone 103*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/bdb47c5fd68996c04a69d6b23c4c4a5a81df5c95 104*2fd832c6SAndroid Build Coastguard Worker# Sierra Leone did not use DST 1957-1962 105*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/6982e34ab92cf13f3f3fb20212aca8aa2e4f0aae 106*2fd832c6SAndroid Build Coastguard Worker# Tonga moved from +12:20 to +13 in 1961, not 1941 107*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/666022ef2a65bb9872ffa6d98cb73236c5f6daa0 108*2fd832c6SAndroid Build Coastguard Worker# Tonga switched to standard time in 1945, not 1901 109*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/03cc98977ea7c93c49ecb58eae07cd01e9034bfd 110*2fd832c6SAndroid Build Coastguard Worker# Cook Islands had two Christmases in 1899 111*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/bf12c3ba8513b640b83c245f804c37feeccb862b 112*2fd832c6SAndroid Build Coastguard Worker# More pre-1978 fixes for Cook and Niue 113*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/a10451bb3fa7f84181f29ac81b06008fd1d81249 114*2fd832c6SAndroid Build Coastguard Worker# Fix north Vietnam lat+long 115*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/6860c875400b70be52c71d7b7b9642b8667a8112 116*2fd832c6SAndroid Build Coastguard Worker# Niue left -11:20 in 1964, not 1978 117*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/b73f9fd0364e1795b40cd325661ce609d6126377 118*2fd832c6SAndroid Build Coastguard Worker# Samoa no longer observes DST 119*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/29583c461a9705118560e02e69bb64a0bf2fce0c 120*2fd832c6SAndroid Build Coastguard Worker# Jordan now starts DST on February’s last Thursday. 121*2fd832c6SAndroid Build Coastguard Workerhttps://github.com/eggert/tz/commit/39df8c8b22605f59f71213cfb92b3fd321e31d3c 122*2fd832c6SAndroid Build Coastguard Worker``` 123*2fd832c6SAndroid Build Coastguard Worker 124*2fd832c6SAndroid Build Coastguard WorkerThese changes are in chronological order -- from old to new, so apply them 125*2fd832c6SAndroid Build Coastguard Workeraccordingly. 126*2fd832c6SAndroid Build Coastguard Worker 127*2fd832c6SAndroid Build Coastguard Worker"Replace Pacific/Enderbury with Pacific/Kanton" change was skipped as it 128*2fd832c6SAndroid Build Coastguard Workerrequires changes in CLDR and `tzdb2021b` was announced late in CLDR's release 129*2fd832c6SAndroid Build Coastguard Workercycle. 130*2fd832c6SAndroid Build Coastguard Worker 131*2fd832c6SAndroid Build Coastguard WorkerCode changes were skipped as Android uses fixed version of tzcode, not ToT. 132*2fd832c6SAndroid Build Coastguard Worker 133