Date/Calendar confusion

U

Ulrich Scholz

Dear all,

have a look at the function below (Java 5). The first result is 0 as expected. But why is the second one different?

Thanks, Ulrich


private static void testDate() throws ParseException
{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
TimeZone timeZone = TimeZone.getTimeZone("GMT");
timeZone.setRawOffset(0); // get GMT time zone for sure
dateFormat.setTimeZone(timeZone);

Calendar calendar1 = Calendar.getInstance(timeZone, Locale.US);
Date date1 = DATE_FORMAT.parse("1970-01-01T00:00:00.000");
calendar1.setTime(date1);
System.out.println(calendar1.getTimeInMillis()); // is 0

Calendar calendar2 = Calendar.getInstance(timeZone, Locale.US);
Date date2 = DATE_FORMAT.parse("0000-00-00T00:00:00.000");
calendar2.setTime(date2);

// adjust for the epoch 01.01.1970
//
calendar2.set(Calendar.YEAR, calendar2.get(Calendar.YEAR) + 1970);
calendar2.set(Calendar.MONTH, calendar2.get(Calendar.MONTH) + 1);
calendar2.set(Calendar.DAY_OF_MONTH, calendar2.get(Calendar.DAY_OF_MONTH) + 1);

System.out.println(calendar2.getTimeInMillis()); // should be 0 but is -124335907200000
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top