Сравните дату java.util.Calendar с датой java.util.Date.
Мне нужно сравнить время календаря с датой. Я написал ниже код.
Calendar now = Calendar.getInstance();
now.set(Calendar.SECOND, 0);
Date date = new Date();
date.setSeconds(0);
System.out.println(date);
System.out.println(now.getTime());
System.out.println(date.compareTo(now.getTime()));
Выход
Fri Dec 01 16:54:00 IST 2017
Fri Dec 01 16:54:00 IST 2017
1
Кажется, дата использования больше календарной даты. Почему это терпит неудачу? Как записать сравнение этих дат?
Изменить 1:- Моя проблема в том, что мне нужно сравнить дату использования (хранится в базе данных), скажем, 2017-12-01 16:41:00.0 с текущей датой и временем, что такое подход записи?
2 ответа
Проверьте миллис:
System.out.println(now.getTime().getTime());
System.out.println(date.getTime());
System.out.println(now.getTime().getTime() - date.getTime());
Затем вы видите, что есть (иногда) разница.
Простой способ удалить секунды / миллис является подсчет количества минут
// compare the minutes, ignoring the seconds/milli-seconds.
if (now.getTime().getTime() / 60_000 == date.getTime() / 60_000)
Вы также можете использовать TimeUnit
if (TimeUnit.MILLISECONDS.toMinutes(now.getTime().getTime()) ==
TimeUnit.MILLISECONDS.toMinutes(date.getTime()))
если вы предпочитаете использовать библиотеку, чем математика.