Change UTC handling in libcore.icu.TimeZoneNames

ICU now has localized strings for UTC. This commit
removes special case handling for UTC from
libcore.icu.TimeZoneNames (used to provide
DateFormatSymbols.getZoneStrings()).

A side effect of this change is that DST variants
of time zone names for UTC zone become GMT+00:00
(the standard libcore fallback for when ICU doesn't
provide a string) rather than the hard-coded "UTC".
Since _DST makes no sense for UTC this change shouldn't
cause any problems for apps.

This change also adds a canonicalization step for zone
IDs (i.e. translating from IANA IDs to ICU IDs) which was
previously missing. There is a strong overlap between
ICU and IANA IDs so it wasn't obvious this was previously
missing (and was obscured by the UTC handling).

Canonicalizing ensures that Android finds
strings for zones IDs that are synonyms for other zones
that previously could not be found.

In reality this is only noticeable for UTC and a few archaic
zone IDs which are detailed below. All other entries are
identical.

Synonyms for UTC:

New:
    [Etc/UCT, Coordinated Universal Time, UTC, GMT+00:00, GMT+00:00]
    [Etc/UTC, Coordinated Universal Time, UTC, GMT+00:00, GMT+00:00]
    [Etc/Universal, Coordinated Universal Time, UTC, GMT+00:00, GMT+00:00]
    [Etc/Zulu, Coordinated Universal Time, UTC, GMT+00:00, GMT+00:00]
    [UCT, Coordinated Universal Time, UTC, GMT+00:00, GMT+00:00]
    [Universal, Coordinated Universal Time, UTC, GMT+00:00, GMT+00:00]
    [UTC, Coordinated Universal Time, UTC, GMT+00:00, GMT+00:00]
    [Zulu, Coordinated Universal Time, UTC, GMT+00:00, GMT+00:00]

Old:
    [Etc/UCT, UTC, UTC, UTC, UTC]
    [Etc/UTC, UTC, UTC, UTC, UTC]
    [Etc/Universal, UTC, UTC, UTC, UTC]
    [Etc/Zulu, UTC, UTC, UTC, UTC]
    [UCT, UTC, UTC, UTC, UTC]
    [UTC, UTC, UTC, UTC, UTC]
    [Universal, UTC, UTC, UTC, UTC]
    [Zulu, UTC, UTC, UTC, UTC]

Synonyms for Europe/Dublin:

New:
    [Eire, Greenwich Mean Time, GMT+00:00, Irish Standard Time, GMT+01:00]

Old:
    [Eire, Greenwich Mean Time, GMT+00:00, GMT+01:00, GMT+01:00]

Synonyms for Europe/London:

New:
    [Europe/Belfast, Greenwich Mean Time, GMT+00:00, British Summer Time, GMT+01:00]
    [GB, Greenwich Mean Time, GMT+00:00, British Summer Time, GMT+01:00]
    [GB-Eire, Greenwich Mean Time, GMT+00:00, British Summer Time, GMT+01:00]

Old:
    [Europe/Belfast, Greenwich Mean Time, GMT+00:00, GMT+01:00, GMT+01:00]
    [GB, Greenwich Mean Time, GMT+00:00, GMT+01:00, GMT+01:00]
    [GB-Eire, Greenwich Mean Time, GMT+00:00, GMT+01:00, GMT+01:00]

New:
    [US/Hawaii, Hawaii-Aleutian Standard Time, HST, Hawaii-Aleutian Daylight Time, HDT]
Old:
    [US/Hawaii, Hawaii-Aleutian Standard Time, HAST, Hawaii-Aleutian Daylight Time, HADT]

(This case appears to be because ICU has specific overrides for
Pacific/Honolulu and US/Hawaii is now canonicalized to
Pacific/Honolulu).

Bug: 36337342
Test: CTS: run cts -m CtsLibcoreTestCases
Change-Id: I16db124c7e4561c00bdcd53b388b45c949890774
2 files changed