Программа, за которой следует выход. Кто-то, пожалуйста, объясните мне, почему 10 000 000 миллисекунд с 1 января 1970 года - 31 ноября 1969 года. Ну, кто-то, пожалуйста, объясните, что случилось с моим предположением, что первый тест должен произвести время в 10 000 000 миллисекунд с 1 января 1970 года. Числа размером менее 10 000 000 продуктов тот же результат.Java.util.Calendar - миллисекунды с 1 января 1970 г.
public static void main(String[] args) {
String x = "10000000";
long l = new Long(x).longValue();
System.out.println("Long value: " + l);
Calendar c = new GregorianCalendar();
c.setTimeInMillis(l);
System.out.println("Calendar time in Millis: " + c.getTimeInMillis());
String origDate = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DAY_OF_MONTH);
System.out.println("Date in YYYY-MM-DD format: " + origDate);
x = "1000000000000";
l = new Long(x).longValue();
System.out.println("\nLong value: " + l);
c.setTimeInMillis(l);
System.out.println("Calendar time in Millis: " + c.getTimeInMillis());
origDate = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DAY_OF_MONTH);
System.out.println("Date in YYYY-MM-DD format: " + origDate);
}
Long Значение: 10000000
Календарное время в Millis: 10000000
Дата в формате YYYY-MM-DD Формат: 1969-11-31
Long значение: 1000000000000
Календарное время в Миллис: 1000000000000
Дата в формате YYYY-MM-DD: 2001-8-8
Спасибо! Я думал, что сойду с ума. – 2008-11-05 00:39:48