tree dfb6624c5c9ef4e79113b87b8c42298434f28891
parent 53c6e74505ae84cf8e9a48ba14695d109e44ca9c
author Neil Fuller <nfuller@google.com> 1428429034 +0100
committer Neil Fuller <nfuller@google.com> 1428586113 +0100

Upgrade timezone data to 2015b

  Changes affecting future time stamps

    Mongolia will start observing DST again this year, from the last
    Saturday in March at 02:00 to the last Saturday in September at 00:00.
    (Thanks to Ganbold Tsagaankhuu.)

    Palestine will start DST on March 28, not March 27.  Also,
    correct the fall 2014 transition from September 26 to October 24.
    Adjust future predictions accordingly.  (Thanks to Steffen Thorsen.)

  Changes affecting past time stamps

    The 1982 zone shift in Pacific/Easter has been corrected, fixing a 2015a
    regression.  (Thanks to Stuart Bishop for reporting the problem.)

    Some more zones have been turned into links, when they differed
    from existing zones only for older time stamps.  As usual,
    these changes affect UTC offsets in pre-1970 time stamps only.
    Their old contents have been moved to the 'backzone' file.
    The affected zones are: America/Antigua, America/Cayman,
    Pacific/Midway, and Pacific/Saipan.

  Changes affecting time zone abbreviations

    Correct the 1992-2010 DST abbreviation in Volgograd from "MSK" to "MSD".
    (Thanks to Hank W.)

This also includes ICU4J test changes from:
http://bugs.icu-project.org/trac/changeset/37267
and ICU4C test changes from:
http://bugs.icu-project.org/trac/changeset/37266
Data update obtained from:
ftp://ftp.iana.org/tz/releases/tzdata2015b.tar.gz

The following files generated using ICU build tools:
icu4c/source/data/misc/zoneinfo64.txt
icu4c/source/stubdata/icudt55l.dat
icu4j/main/shared/data/icudata.jar
icu4j/main/shared/data/icutzdata.jar

Some ICU4J tests fail (same before and after, see below).
Some ICU4C test fail (same before and after, see below).

ICU4J test failures from "ant check" (besides ICU4J known failures):
     [java]         TestAddLikelySubtags {
     [java]           Error: (ULocaleTest.java:3838) Original: und_Arab_SN expected: wo_Arab_SN - but got ar_Arab_SN
     [java]           Error: (ULocaleTest.java:3838) Original: und_Cyrl_KZ expected: kk_Cyrl_KZ - but got ru_Cyrl_KZ
     [java]           Error: (ULocaleTest.java:3838) Original: und_Ethi_ER expected: ti_Ethi_ER - but got am_Ethi_ER
     [java]           Error: (ULocaleTest.java:3838) Original: und_GU expected: ch_Latn_GU - but got en_Latn_GU
     [java]           Error: (ULocaleTest.java:3838) Original: und_Latn_ZA expected: af_Latn_ZA - but got en_Latn_ZA
     [java]           Error: (ULocaleTest.java:3838) Original: und_NR expected: na_Latn_NR - but got en_Latn_NR
     [java]         } (0.030s) FAILED (6 failure(s))

ICU4C test failures:
-------------
| ***     FAILING TEST SUMMARY FOR:              intltest
         TestG7Locales
      G7CollationTest
         TestProperty
      CollationAPITest
         TestDataDriven
      CollationTest
   collate
| *** END FAILING TEST SUMMARY FOR:              intltest
-------------
| ***     FAILING TEST SUMMARY FOR:              cintltst
/tsutil/creststn/TestGetVersionColl
/tscoll/capitst/TestProperty
/tscoll/cg7coll/TestG7Locales
/tscoll/cmsccoll/TestImportRulesDeWithPhonebook
/tscoll/cmsccoll/TestImport
/tscoll/cmsccoll/TestImportWithType
| *** END FAILING TEST SUMMARY FOR:              cintltst
---------------
ALL TESTS SUMMARY:
ok:  testdata iotest letest
===== ERRS:  intltest cintltst

Bug: 19887183
Change-Id: I1b4bdc5ae5cf778908a77893d7f8db8a4117e1e1
