Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #18567 > unrolled thread

Date/Calendar confusion

Started byUlrich Scholz <d7@thispla.net>
First post2012-09-06 00:57 -0700
Last post2012-09-06 00:57 -0700
Articles 1 — 1 participant

Back to article view | Back to comp.lang.java.programmer


Contents

  Date/Calendar confusion Ulrich Scholz <d7@thispla.net> - 2012-09-06 00:57 -0700

#18567 — Date/Calendar confusion

FromUlrich Scholz <d7@thispla.net>
Date2012-09-06 00:57 -0700
SubjectDate/Calendar confusion
Message-ID<353c7a6c-dfec-4be4-b683-3866b159aa77@googlegroups.com>
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
    }

[toc] | [standalone]


Back to top | Article view | comp.lang.java.programmer


csiph-web