In many time zones, they switched time zones and therefore changed the time zone names. For example, the following is the history of Asia/Singapore.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Singapore 6:55:24 - LMT 1880
6:55:24 - SMT 1905 Jun # Singapore Mean Time
7:00 - MALT 1933 # Malaya Time
7:20 - MALT 1942 Feb 15
9:00 - JST 1945 Sep 2
7:20 - MALT 1950
7:30 - MALT 1965 Aug 9 # independence
7:30 - SGT 1982 May # Singapore Time
8:00 - SGT
The TimeZone class can't deal with these name changes.
Currently, timezone abbreviations are stored in java.text.resources.DateFormatZoneData<locale>. Therefore, timezone abbreviations unknown to a locale are not shown in the locale. Timezone abbreviations should not be dependent on a locale. (Timezone names should still be localizable.)