<tt><font size=2><br>> > The new version v2018c is only good for OpenJDK when handling
Ireland <br>> > now in year 2018. <br>> <br>> Yes, this is a known issue with CLDR, discussed here:<br>> <br>> </font></tt><a href=https://urldefense.proofpoint.com/v2/url?><tt><font size=2>https://urldefense.proofpoint.com/v2/url?</font></tt></a><tt><font size=2><br>> u=https-3A__mm.icann.org_pipermail_tz_2018-2DJanuary_025974.html&d=DwICaQ&c=jf_iaSHvJObTbx-<br>> siA1ZOg&r=sE8ucIDOUlZUTL1mVdiOnoXkknyh5kabG5yfwpgfi10&m=RgeB4ArWFe2W4Qo489WjPusbCh0yqUEkcYac204zDSA&s=m9GGwtksBqM_tnPSgu6QD8CC5eLjL_2JUUDfJc-<br>> IlFA&e=<br>> <br>> which says that CLDR doesn't worry about timestamps before 1990.<br>> <br></font></tt><br><tt><font size=2>Well, above statement is not accurate.</font></tt><br><tt><font size=2>CLDR does not provide any zone names only used before
1990.</font></tt><br><tt><font size=2>If name is not available, CLDR specification (LDML)
suggests CLDR data consumers to use UTC offset format as the fallback.</font></tt><br><br><tt><font size=2>So, program utilizing CLDR data should still produce
accurate timestamp, but just not using zone name.</font></tt><br><br><tt><font size=2>OpenJDK situation is slightly different. Basically,
OpenJDK retrofit CLDR data partially and use the set of current names only.
As far as I know, JDK does not support multiple sets of names for a single
tz database zone.</font></tt><br><br><tt><font size=2>For example, America/Indiana/Knox:</font></tt><br><br><tt><font size=2>====</font></tt><br><tt><font size=2># Zone        NAME  
             GMTOFF
       RULES        FORMAT
       [UNTIL]</font></tt><br><tt><font size=2>Zone America/Indiana/Knox -5:46:30 -    
   LMT        1883 Nov 18
12:13:30</font></tt><br><tt><font size=2>           
            -6:00  
     US        C%sT
       1947</font></tt><br><tt><font size=2>           
            -6:00  
     Starke        C%sT
       1962 Apr 29  2:00</font></tt><br><tt><font size=2>           
            -5:00  
     -        EST  
     1963 Oct 27  2:00</font></tt><br><tt><font size=2>           
            -6:00  
     US        C%sT
       1991 Oct 27  2:00</font></tt><br><tt><font size=2>           
            -5:00  
     -        EST  
     2006 Apr  2  2:00</font></tt><br><tt><font size=2>           
            -6:00  
     US        C%sT</font></tt><br><tt><font size=2>====</font></tt><br><br><tt><font size=2>With Java, formatting date on Jan 1 2000 and 2010,
format date should be in EST, while latter date is in CST. However, my
understanding is that Java only use the current name set (in this case,
US Central Time), Java date formatter prints out "Central Standard
Time" for both date.</font></tt><br><br><br><tt><font size=2>Example 1 (TimeZone and DateFormat):</font></tt><br><br><tt><font size=2>    TimeZone tzKnox = TimeZone.getTimeZone("America/Indiana/Knox");</font></tt><br><tt><font size=2>    GregorianCalendar cal = new GregorianCalendar();</font></tt><br><tt><font size=2>    cal.setTimeZone(tzKnox);</font></tt><br><br><tt><font size=2>    DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, Locale.US);</font></tt><br><tt><font size=2>    fmt.setTimeZone(tzKnox);</font></tt><br><br><tt><font size=2>    cal.clear();</font></tt><br><tt><font size=2>    cal.set(2000, Calendar.JANUARY, 1);</font></tt><br><tt><font size=2>    String dstr2000 = fmt.format(cal.getTime());</font></tt><br><br><tt><font size=2>    cal.set(2010, Calendar.JANUARY, 1);</font></tt><br><tt><font size=2>    String dstr2010 = fmt.format(cal.getTime());</font></tt><br><br><tt><font size=2>    System.out.println(dstr2000);</font></tt><br><tt><font size=2>    System.out.println(dstr2010);</font></tt><br><br><tt><font size=2>Example 2 (java.time):</font></tt><br><br><tt><font size=2>    ZoneId tzKnox = ZoneId.of("America/Indiana/Knox");</font></tt><br><tt><font size=2>    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE,
MMMM d, y 'at' h:mm:ss a zzzz").withZone(tzKnox);</font></tt><br><br><tt><font size=2>    ZonedDateTime d2000 = ZonedDateTime.of(2000,
1, 1, 0, 0, 0, 0, tzKnox);</font></tt><br><tt><font size=2>    String dstr2000 = d2000.format(formatter);</font></tt><br><br><tt><font size=2>    ZonedDateTime d2010 = ZonedDateTime.of(2010,
1, 1, 0, 0, 0, 0, tzKnox);</font></tt><br><tt><font size=2>    String dstr2010 = d2010.format(formatter);</font></tt><br><br><tt><font size=2>    System.out.println(dstr2000);</font></tt><br><tt><font size=2>    System.out.println(dstr2010);</font></tt><br><br><tt><font size=2>Both example prints out:</font></tt><br><br><tt><font size=2>    Saturday, January 1, 2000 at 12:00:00
AM Central Standard Time</font></tt><br><tt><font size=2>    Friday, January 1, 2010 at 12:00:00
AM Central Standard Time</font></tt><br><br><tt><font size=2>Although, the date on Jan 1, 2000 should be</font></tt><br><br><tt><font size=2>    Saturday, January 1, 2000 at 12:00:00
AM Eastern Standard Time</font></tt><br><br><br><tt><font size=2>-Yoshito</font></tt><br><br><br><BR>