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

Calendar: can't set value for ZONE_OFFSET&DST_OFFSET and roll() throw exception

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 1.4.2
    • core-libs

      Calendar: can't set value for ZONE_OFFSET and roll() throw exception.
      Calendar.ZONE_OFFSET is one of the time field. set and roll should work.

      Please run the attched code. The output is shown after.
      Run with DST_OFFSET, Similar things happened.
      -----------------------------------
      import java.util.*;
      import java.text.*;

      public class Test{
         public static void main(String[] args){
            
            Calendar cal = Calendar.getInstance();
            cal.clear();
            cal.set(2002, 2, 2, 10, 30, 30);
            cal.get(Calendar.YEAR);
            cal.get(Calendar.MONTH);
            cal.get(Calendar.DATE);
            cal.get(Calendar.HOUR);
            cal.get(Calendar.MINUTE);
            cal.get(Calendar.SECOND);
            System.out.println(cal.get(Calendar.ZONE_OFFSET));
            
            cal.set(Calendar.ZONE_OFFSET, 360000);
            System.out.println(cal.get(Calendar.ZONE_OFFSET));
            
            cal.roll(Calendar.ZONE_OFFSET, true);
            System.out.println(cal.get(Calendar.ZONE_OFFSET));
         }
      }

      ------
      output:
      -28800000
      -28800000
      Exception in thread "main" java.lang.IllegalArgumentException
              at java.util.GregorianCalendar.roll(GregorianCalendar.java:1074)
              at java.util.GregorianCalendar.roll(GregorianCalendar.java:721)
              at Test.main(Test.java:21)

            okutsu Masayoshi Okutsu
            lzhanorcl Lichun Zhan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: