-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
6u29
-
x86
-
windows_7
FULL PRODUCT VERSION :
Observed on both JDK 6 and 7
A DESCRIPTION OF THE PROBLEM :
When pure Gregorian Calendar is set to date January 1, 1, reading the date on the calendar returns January 3, 1. Is this descrepancy expected?
REGRESSION. Last worked in version 6u29
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.LinkedList;
import java.util.Locale;
import java.util.TimeZone;
public class getDateRepro {
public static void main(String[] args) {
GregorianCalendar cal = new GregorianCalendar(TimeZone.getDefault(), Locale.US);
GregorianCalendar pureGregorainCal = new GregorianCalendar(TimeZone.getDefault(), Locale.US);
pureGregorainCal.setGregorianChange(new java.util.Date(Long.MIN_VALUE));
GregorianCalendar juliancal = new GregorianCalendar(TimeZone.getDefault(), Locale.US);
juliancal.setGregorianChange(new java.util.Date(Long.MAX_VALUE));
LinkedList<Calendar> cals = new LinkedList<Calendar>();
cals.add(cal);
cals.add(pureGregorainCal);
cals.add(juliancal);
for(Calendar cal1 : cals)
{
cal1.set(1, Calendar.JANUARY, 1 , 0, 0, 0);
cal1.set(Calendar.MILLISECOND, 0);
java.sql.Date dt = new java.sql.Date(cal1.getTimeInMillis());
System.out.println(cal1.getTime() + " " + dt.toString());
}
}
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I was expecting Gregorian Calendar to return date 0001-01-01
ACTUAL -
Default:
Sat Jan 01 00:00:00 PST 1 0001-01-01
Pure Gregorian:
Mon Jan 03 00:00:00 PST 1 0001-01-03
Julian:
Sat Jan 01 00:00:00 PST 1 0001-01-01
REPRODUCIBILITY :
This bug can be reproduced always.
Observed on both JDK 6 and 7
A DESCRIPTION OF THE PROBLEM :
When pure Gregorian Calendar is set to date January 1, 1, reading the date on the calendar returns January 3, 1. Is this descrepancy expected?
REGRESSION. Last worked in version 6u29
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.LinkedList;
import java.util.Locale;
import java.util.TimeZone;
public class getDateRepro {
public static void main(String[] args) {
GregorianCalendar cal = new GregorianCalendar(TimeZone.getDefault(), Locale.US);
GregorianCalendar pureGregorainCal = new GregorianCalendar(TimeZone.getDefault(), Locale.US);
pureGregorainCal.setGregorianChange(new java.util.Date(Long.MIN_VALUE));
GregorianCalendar juliancal = new GregorianCalendar(TimeZone.getDefault(), Locale.US);
juliancal.setGregorianChange(new java.util.Date(Long.MAX_VALUE));
LinkedList<Calendar> cals = new LinkedList<Calendar>();
cals.add(cal);
cals.add(pureGregorainCal);
cals.add(juliancal);
for(Calendar cal1 : cals)
{
cal1.set(1, Calendar.JANUARY, 1 , 0, 0, 0);
cal1.set(Calendar.MILLISECOND, 0);
java.sql.Date dt = new java.sql.Date(cal1.getTimeInMillis());
System.out.println(cal1.getTime() + " " + dt.toString());
}
}
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I was expecting Gregorian Calendar to return date 0001-01-01
ACTUAL -
Default:
Sat Jan 01 00:00:00 PST 1 0001-01-01
Pure Gregorian:
Mon Jan 03 00:00:00 PST 1 0001-01-03
Julian:
Sat Jan 01 00:00:00 PST 1 0001-01-01
REPRODUCIBILITY :
This bug can be reproduced always.