[kaffe] Timezone Expression

Ito Kazumitsu ito.kazumitsu at hidec.co.jp
Sun Jan 23 21:05:49 PST 2005

In message "[kaffe] Timezone Expression"
    on 05/01/24, Ito Kazumitsu <ito.kazumitsu at hidec.co.jp> writes:

> So, Thu Oct 28 22:00:27 is correct. But anyway the timezone expression
> "JDT" is wrong and it must be "JST".

java.util.TimeZone.getDisplayName(dst, SHORT, locale) returns
zoneinfo[i][2] if dst == false, where zoneinfo[i] returned
by java.text.DateFormatSymbols(locale).getZoneStrings() is
an array of Strings containing:

   0 - The non-localized time zone id string.
   1 - The long name of the time zone (standard time).
   2 - The short name of the time zone (standard time).
   3 - The long name of the time zone (daylight savings time).
   4 - the short name of the time zone (daylight savings time).

So, java.util.TimeZone.getDisplayName() is doing a right thing
if java.text.DateFormatSymbols.getZoneStrings() returns a
correct array.

java.text.DateFormatSymbols.getZoneStrings() just returns
what is returned by ResourceBundle.getObject("zoneStrings").

Let's look at gnu/java/locale/LocaleInformation_en.java,
which says

  private static final String[][] zoneStrings =
    { "JST", "Japan Standard Time", "JDT", "Japan Daylight Time",  "Asia/Tokyo"},

Now I understand how the timezone name becomes "JDT".

Unfortunately, Sun's API document does not clearly define
what java.text.DateFormatSymbols.getZoneStrings() should
return.  But lookig at the output from Sun's
java.text.DateFormatSymbols.getZoneStrings(), I guess
what java.util.TimeZone.getDisplayName() expects is

So, all the definitions of zoneString in gnu/java/locale/LocaleInformation*
should be corrected.

More information about the kaffe mailing list