-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
1.4.2
-
generic
-
generic
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)
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)
- duplicates
-
JDK-4281893 (cal) doc: Calendar roll()/add() should specify behaviour of time related field
-
- Closed
-