I'm trying to compare two millisecond values in Java. One from a calendar, and one from System.currentTimeMillis(). However, it seems the value from the calendar is always far larger than the one from System.currentTimeMillis() at the correct time.

To build the calendar, I'm parsing a date string in the format dd/MM/yyyy HH:mm and putting it's consitutuent parts in to a calendar (try-catch omitted for brevity).

Inspecting the calendar after this shows me it is receiving the correct date and time. I then get the millisecond value since the epoch from obCal.getTimeInMillis() and store it as a number of seconds as a long

long stamp = obCal.getTimeInMillis() / 1000L;

When I reach the time represented by the date string, and compare the timestamp from the calendar to timestamp System.currentTimeMillis(), I find the former is far larger. The difference between the current time and the calendar time (curTime-calTime) is, usually, somewhere in the region of -2,500,000