У меня возникла необъяснимая проблема с классом Java Calendar, когда я пытаюсь сравнить даты. Я пытаюсь сравнить с календарями
и определить, составляет ли их разница> 1 дня, и делать что-то на основе этой разницы или нет. Но это не работает.
Если я сделаю это с двумя датами:
String currDate = aCurrentUTCCalendar.getTime().toString();
String localDate = aLocalCalendar.getTime().toString();
Я получаю эти результаты:
currDate = "Thu Jan 06 05:58:00 MST 2010"
localDate = "Tue Jan 05 00:02:00 MST 2010"
Это правильно.
Но если я сделаю это:
long curr = aCurrentUTCCalendar.getTime().getTime();
long local = aLocalCalendar.getTime().getTime();
Я получаю эти результаты: (в миллисекундах с начала эпохи)
curr = -125566110120000
local = 1262674920000
Поскольку разница между ними составляет всего около 30 часов, величины сильно различаются, не говоря уже о том, что раздражающий негатив
знак.
Это вызывает проблемы, если я делаю это:
long day = 60 * 60 * 24 * 1000; // 86400000 millis, one day
if( local - curr > day )
{
// do something
}
Что не так? Почему вызовы getTime (). ToString () правильные, а вызовы getTime (). GetTime () сильно отличаются?
Я использую jdk 1.6_06 на WinXP. Я не могу обновить JDK по разным причинам.