Re: Date/Calendar confusion
Try this:
package snippet;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
public class Snippet {
public static void main(String[] args) 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 = dateFormat.parse("1970-01-01T00:00:00.000");
System.out.println(date1);
calendar1.setTime(date1);
System.out.println(calendar1.getTimeInMillis()); // is 0
System.out.println(calendar1);
Calendar calendar2 = Calendar.getInstance(timeZone, Locale.US);
Date date2 = dateFormat.parse("0001-01-01T00:00:00.000");
System.out.println(date2);
calendar2.setTime(date2);
// adjust for the epoch 01.01.1970
//
calendar2.set(Calendar.YEAR, calendar2.get(Calendar.YEAR) + 1969);
calendar2.set(Calendar.MONTH, calendar2.get(Calendar.MONTH));
calendar2.set(Calendar.DAY_OF_MONTH, calendar2.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar2);
System.out.println(calendar2.getTimeInMillis()); // should be 0 but is -124335907200000
}
}