Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6530336

(tz) DST bug in latest jdk releases when using EST MST and HST abbreviations

    Details

    • Subcomponent:
    • Resolved In Build:
      b14
    • CPU:
      generic, sparc
    • OS:
      solaris, solaris_10
    • Verification:
      Verified

      Backports

        Description

        FULL PRODUCT VERSION :
        All current versions (1.4.2_13, 1.5.0_11, 1.6)

        ADDITIONAL OS VERSION INFORMATION :
        Anything

        CUSTOMER DESCRIPTION OF THE PROBLEM :
        "The recent change to the definition of EST timezone to remove DST awareness has broken basic functionality in date handling.

        The problem is very simple. The DateFormat parser uses the contents of String zoneStrings[][] in class DateFormatSymbols to identify the timezone based on the zone value in the input date string.

        The zoneStrings[][] array defines "EST" before "America/New_York" so sets the timezone for the parser to the now non-DST aware "EST" zone."

        The customer feels this is a serious issue.

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        Compile and run the test code below as shown.
        First run as java -Duser.timezone=America/New_York Moh

        and the output is correct: Wed Jun 06 14:00:00 EDT 2007

        Then run as java -Duser.timezone=America/Los_Angeles Moh

        and the output is wrong: Wed Jun 06 12:00:00 PDT 2007

        The correct output would be 11:00:00 PDT 2007.

        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        In the test case when in the Los Angeles time zone I expect the time to be 11:00:00 PDT but it wrongly displays 12:00:00 PDT.
        ACTUAL -
        As above.

        REPRODUCIBILITY :
        This bug can be reproduced always.

        ---------- BEGIN SOURCE ----------
        import java.text.*;
        import java.util.*;

        public class Moh {
                public static void main(String[] args) throws Exception {
                        SimpleDateFormat timestampFormatWithZone = new SimpleDateFormat("yyyy-MM-dd HH:mm zzz");
                        Date date = timestampFormatWithZone.parse("2007-06-06 14:00 EDT");
                        // Calendar calendar = timestampFormatWithZone.getCalendar();
                        System.out.println(date);
                }
        }

        ---------- END SOURCE ----------

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  peytoia Yuka Kamiya (Inactive)
                  Reporter:
                  ndcosta Nelson Dcosta (Inactive)
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Imported:
                    Indexed: