| ### 2022a |
| |
| This update includes pre-1970 |
| [changes](https://github.com/eggert/tz/commit/1edbb16e933a6ba6dceefd2bd7057b5ce00dd13c) |
| which were reverted manually in Android and resulted in Android releasing |
| updates we called `2021a rev 2` and `2021a rev 3` instead of tracking TZDB's |
| `2021b` and `2021c` releases. Android has made changes to reduce the impact of |
| these changes. This might have app compat issues as some methods in Android's |
| ICU4J APIs such as `TimeZone.getCanonicalID(id)` will return different time |
| zone IDs than before. After this release, the canonical zone IDs returned will |
| be different for some input IDs, and will more often be associated with |
| different regions. |
| |
| `Africa/Casablanca` is a time zone modelled by the TZDB using a negative DST |
| saving to represent the period of Ramadan. Several of Android's embedded time |
| libraries do not support negative DST savings, so we use TZDB's rearguard |
| format, which flips standard and daylight saving time definitions for affected |
| zones. Also, `Africa/Casablanca` transitions follow lunar calendar, which |
| is not supported by TZif format so transitions are pre-generated (as of now up |
| to year 2087). As they are pre-generated, the last transition is used for dates |
| after 2087. Before `2022a`, in rearguard format that last transition was from |
| standard to daylight saving time. Having DST throughout the year might break |
| assumptions in software, so as of `2022a` the last transition is marked as |
| standard time, even though its offset differs from standard time offset used in |
| prior transitions. |
| |
| A standard-to-standard time transition breaks DST saving logic in |
| Android's `java.util.TimeZone.getDSTSavings()` - it returns 0 instead of 1 hour. |
| `input_data/iana/tzdb2022a.tar.gz` has [commit](https://github.com/eggert/tz/commit/cec7d9e2e83f8a3faa2367e0d45383a1557889ed) |
| reverted to bring back the old TZif file. There is no fix yet, it will be like |
| that indefinitely. |
| |
| The main reason for the TZDB `2022a` release is a change to the DST transition |
| for Palestine on 27 Mar 2022. In addition to this year's change, future |
| predictions have also been [adjusted](https://github.com/eggert/tz/commit/59467e3373a2f90aae3a3c9684ab527855922427) |
| so the DST transitions for future years are also affected. |
| |
| |
| ### 2021 rev. 3 |
| |
| Like 2021 rev.2 this release is also different from regular updates. It is |
| closely correlated with IANA's `2021d` and `2021e`. See below for more details. |
| |
| TZDB version `2021c` reverted most (but not all) time zone merges from `2021b`. |
| As Android has not applied any of them and there were no other rules update, |
| it is a no-op for Android. |
| |
| Then TZDB version `2021d` was released with Fiji changes. That corresponds to |
| ICU's `2021a2`. But `2021a2` also picked up a |
| `"Link America/Panama America/Coral_Harbour"` change from IANA's TZDB release |
| in the backward file. |
| |
| ICU's `2021a3` is `2021a2` with Palestine changes. No extra change there. |
| |
| `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) |
| with `Link` change mention above reverted. Not reverting it will put |
| `America/Coral_Harbour` under Panama in `tzlookup.xml`. Right approach here |
| is to update tooling, but that will take some time. |
| |
| |
| ### 2021a rev. 2 |
| |
| In `2021b` several time zones which were alike since 1970 were merged. It |
| received backlash in tz mailing-list. Please check |
| [September archive](https://mm.icann.org/pipermail/tz/2021-September/thread.html) |
| for discussions around the merges. |
| |
| This contains a subset of the updates from IANA's 2021b update, but not all |
| because they cause problems for various libraries and OSes, Android included. |
| New links cause problems for the tzlookup.xml generation process, which have |
| yet to be resolved. Android API behavior is influenced by ICU, so while ICU |
| are forked and until things become clearer, so is Android. |
| |
| ICU decided to skip zone merge changes and named their release `2021a1`. |
| Unfortunately there are hardcoded places in Android which expect tzdb version |
| to be exactly 5 characters and we release it as `2021a rev. 2`. |
| |
| `input_data/iana/tzdata2021a.tar.gz` is renamed ICU's `2021a1.tar.gz`. As it |
| is not signed, `tzdata2021a.tar.gz.asc` was deleted for this release only. |
| |
| `2021a1` contains the following changes applied on top of `2021a`: |
| ``` |
| # Portugal observed DST in 1950 |
| https://github.com/eggert/tz/commit/ed2f9d6b01d1256a4d463d2ceb953e15e1673d72 |
| # Fix Guyana LMT and later historical transitions |
| https://github.com/eggert/tz/commit/0252f09cdff3769ecbf6adfdaf6c47055bbfb74b |
| # Add Barbados DST 1942-1944, fix end of LMT |
| https://github.com/eggert/tz/commit/42efb563b8224a20c1a6480b38427e5b4634da36 |
| # Backzone fixes for Gambia, Malawi, Sierra Leone |
| https://github.com/eggert/tz/commit/bdb47c5fd68996c04a69d6b23c4c4a5a81df5c95 |
| # Sierra Leone did not use DST 1957-1962 |
| https://github.com/eggert/tz/commit/6982e34ab92cf13f3f3fb20212aca8aa2e4f0aae |
| # Tonga moved from +12:20 to +13 in 1961, not 1941 |
| https://github.com/eggert/tz/commit/666022ef2a65bb9872ffa6d98cb73236c5f6daa0 |
| # Tonga switched to standard time in 1945, not 1901 |
| https://github.com/eggert/tz/commit/03cc98977ea7c93c49ecb58eae07cd01e9034bfd |
| # Cook Islands had two Christmases in 1899 |
| https://github.com/eggert/tz/commit/bf12c3ba8513b640b83c245f804c37feeccb862b |
| # More pre-1978 fixes for Cook and Niue |
| https://github.com/eggert/tz/commit/a10451bb3fa7f84181f29ac81b06008fd1d81249 |
| # Fix north Vietnam lat+long |
| https://github.com/eggert/tz/commit/6860c875400b70be52c71d7b7b9642b8667a8112 |
| # Niue left -11:20 in 1964, not 1978 |
| https://github.com/eggert/tz/commit/b73f9fd0364e1795b40cd325661ce609d6126377 |
| # Samoa no longer observes DST |
| https://github.com/eggert/tz/commit/29583c461a9705118560e02e69bb64a0bf2fce0c |
| # Jordan now starts DST on February’s last Thursday. |
| https://github.com/eggert/tz/commit/39df8c8b22605f59f71213cfb92b3fd321e31d3c |
| ``` |
| |
| These changes are in chronological order -- from old to new, so apply them |
| accordingly. |
| |
| "Replace Pacific/Enderbury with Pacific/Kanton" change was skipped as it |
| requires changes in CLDR and `tzdb2021b` was announced late in CLDR's release |
| cycle. |
| |
| Code changes were skipped as Android uses fixed version of tzcode, not ToT. |
| |