tree 8df10d9e517ae9f964969ef70939e17b9849f14d
parent 95bc2fa72448f04739e9fb4e7c0ca8a7d36a2972
author Almaz Mingaleev <mingaleev@google.com> 1610034141 +0000
committer Almaz Mingaleev <mingaleev@google.com> 1610121627 +0000

Update Android TZDB from 2020d to 2020f.

Notes for Android time zone maintainers:
Like all tzdb updates, the binary files in this commit should not be
patched to other release branches: they are not guaranteed to work.
Also note that there are associated changes in external/icu and often
others that should also be applied.  tzdb updates are incremental
changes: all previous tzdb updates should be applied.  Look for
aosp/<release>-dev changes for backports. If you have a local branch
with ICU changes the ICU .dat file in external/icu will not apply
cleanly.  Instead, make equivalent changes to text files and run
system/timezone/update-tzdata.py.

-----

Note: There was a bug in update 2020e, that's why we update
straight to 2020f.

IANA TZDB 2020e release notes:
  Briefly:
    Volgograd switches to Moscow time on 2020-12-27 at 02:00.

  Changes to future timestamps

    Volgograd changes time zone from +04 to +03 on 2020-12-27 at 02:00.
    (Thanks to Alexander Krivenyshev and Stepan Golosunov.)

  Changes to past timestamps

    Correct many pre-1986 transitions, fixing entries originally
    derived from Shanks.  The fixes include:
      - Australia: several 1917 through 1971 transitions
      - Bahamas: several 1941 through 1945 transitions
      - Bermuda: several 1917 through 1956 transitions
      - Belize: several 1942 through 1968 transitions
      - Ghana: several 1915 through 1956 transitions
      - Israel and Palestine: several 1940 through 1985 transitions
      - Kenya and adjacent: several 1908 through 1960 transitions
      - Nigeria and adjacent: correcting LMT in Lagos, and several 1905
        through 1919 transitions
      - Seychelles: the introduction of standard time in 1907, not 1906
      - Vanuatu: DST in 1973-1974, and a corrected 1984 transition
    (Thanks to P Chan.)

    Because of the Australia change, Australia/Currie (King Island) is
    no longer needed, as it is identical to Australia/Hobart for all
    timestamps since 1970 and was therefore created by mistake.
    Australia/Currie has been moved to the 'backward' file and its
    corrected data moved to the 'backzone' file.

  Changes to past time zone abbreviations and DST flags

    To better match legislation in Turks and Caicos, the 2015 shift to
    year-round observance of -04 is now modeled as AST throughout before
    returning to Eastern Time with US DST in 2018, rather than as
    maintaining EDT until 2015-11-01.  (Thanks to P Chan.)

IANA TZDB 2020f release notes:
  Change to build procedure

    'make rearguard_tarballs' no longer generates a bad rearguard.zi,
    fixing a 2020e bug.  (Problem reported by Deborah Goldsmith.)

Bug: 174544566
Test: CtsLibcoreTestCases
Test: CtsLibcoreOjTestCases
Test: CtsIcuTestCases
Test: CtsBionicTestCases
Test: CtsTextTestCases
Test: Checked image on CF, Volgograd changes are in effect.
Change-Id: Ie0b590c1fe0aa4a07f80587d8ddc37266b2e8111
