Я знаю, Date
в основном устарела, но я все еще использую его время от времени (меньше кода, чем при использовании Calendar
). Я наткнулся на действительно странную ошибку, и мне интересно, может ли кто-нибудь объяснить мне это.
Этот код, который добавляет 24 дня к текущему времени:
long nowL = System.currentTimeMillis();
Date now = new Date(nowL);
System.out.println("now = "+now);
Date future = new Date(nowL+ 24*24*60*60*1000);
System.out.println("future = "+future);
дает правильный вывод:
сейчас = чт 11 июня 10:50:09 IDT 2009
будущее = вс 5 июля 10:50:09 IDT 2009
пока этот код, который добавляет 25 дней:
long nowL = System.currentTimeMillis();
Date now = new Date(nowL);
System.out.println("now = "+now);
Date future = new Date(nowL+ 25*24*60*60*1000);
System.out.println("future = "+future);
дает этот вывод:
сейчас = чт 11 июня 10:51:25 IDT 2009
будущее = вс 17 мая 17:48:37 IDT 2009
Я могу понять разницу в часах, даже днях, но кто-нибудь может объяснить, почему добавление слишком большого количества миллисекунд вызывает возврат во времени ?? Я сбит с толку.