120 lines
6.1 KiB
Markdown
120 lines
6.1 KiB
Markdown
### 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.
|
||
|