tree b7d2ed5a7e7fb75f4dd1eeee272316298e79c675
parent 6b7baaf8043b88cae1545e56e5399041e668e016
author Neil Fuller <nfuller@google.com> 1568655628 +0100
committer Neil Fuller <nfuller@google.com> 1569263246 +0000

DO NOT MERGE: Update tzdb version from 2019b to 2019c

Update tzdb version from 2019b to 2019c [Q branch].

Notes for Android time zone maintainers:
Like all tzdb updates, the binary files in this commit should not be
patched to other branches: they are not guaranteed to work.  Also note
that there are associated changes in external/cldr, 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.

This commit is the result of applying external/cldr, external/icu
changes, running system/timezone/download-iana-files.py --data, making small
changes to countryzones.txt and then running
system/timezone/update-tzdata.py.

Testing:
Ran CTS modules on a taimen:
CtsLibcoreTestCases
CtsLibcoreOjTestCases
CtsIcuTestCases
CtsBionicTestCases
CtsTextTestCases

Relevant upstream IANA release notes:

The 2019c release of the tz code and data is available. It reflects the
following changes, which were either circulated on the tz mailing list or are
relatively minor technical or administrative changes:

   Briefly:
     Fiji observes DST from 2019-11-10 to 2020-01-12.
     Norfolk Island starts observing Australian-style DST.

   Changes to future timestamps

     Fiji's next DST transitions will be 2019-11-10 and 2020-01-12
     instead of 2019-11-03 and 2020-01-19.  (Thanks to Raymond Kumar.)
     Adjust future guesses accordingly.

     Norfolk Island will observe Australian-style DST starting in
     spring 2019.  The first transition is on 2019-10-06.  (Thanks to
     Kyle Czech and Michael Deckers.)

   Changes to past timestamps

     Many corrections to time in Turkey from 1940 through 1985.
     (Thanks to Oya Vulaş via Alois Treindl, and to Kıvanç Yazan.)

     The Norfolk Island 1975-03-02 transition was at 02:00 standard
     time, not 02:00 DST.  (Thanks to Michael Deckers.)

     South Korea observed DST from 1948 through 1951.  Although this
     info was supposed to appear in release 2014j, a typo inadvertently
     suppressed the change.  (Thanks to Alois Treindl.)

     Detroit observed DST in 1967 and 1968 following the US DST rules,
     except that its 1967 DST began on June 14 at 00:01.  (Thanks to
     Alois Treindl for pointing out that the old data entries were
     probably wrong.)

     Fix several errors in pre-1970 transitions in Perry County, IN.
     (Thanks to Alois Triendl for pointing out the 1967/9 errors.)

     Edmonton did not observe DST in 1967 or 1969.  In 1946 Vancouver
     ended DST on 09-29 not 10-13, and Vienna ended DST on 10-07 not
     10-06.  In 1945 Königsberg (now Kaliningrad) switched from +01/+02
     to +02/+03 on 04-10 not 01-01, and its +02/+03 is abbreviated
     EET/EEST, not CET/CEST.  (Thanks to Alois Triendl.)  In 1946
     Königsberg switched to +03 on 04-07 not 01-01.

     In 1946 Louisville switched from CST to CDT on 04-28 at 00:01, not
     01-01 at 00:00.  (Thanks to Alois Treindl and Michael Deckers.)
     Also, it switched from CST to CDT on 1950-04-30, not 1947-04-27.

     The 1892-05-01 transition in Brussels was at 00:17:30, not at noon.
     (Thanks to Michael Deckers.)

   Changes to past time zone abbreviations and DST flags

     Hong Kong Winter Time, observed from 1941-10-01 to 1941-12-25,
     is now flagged as DST and is abbreviated HKWT not HKT.

Bug: 141108188
Test: See above
Merged-In: I5a6abdd816dee7c2ec9a4cc19f8b9076c3e51d57
Change-Id: I8a273e3fd4d5f908d9e3a56f63082a4fa74e9aec
