Я пытаюсь сравнить дату в строковом формате с текущей датой. Вот как я это сделал (не тестировал, но должно сработать), но я использую устаревшие методы. Есть хорошие предложения в качестве альтернативы? Спасибо.
P.S. Я действительно ненавижу делать что-то с датами в Java. Существует так много способов сделать одно и то же, что вы действительно не уверены, какой из них правильный, отсюда мой вопрос.
Метод compareTo должен возвращать отрицательное число, если текущий объект меньше другого объекта, положительное число, если текущий объект больше другого объекта, и ноль, если оба объекта равны друг другу.
// Get Current Date Time Calendarc= Calendar.getInstance(); SimpleDateFormatsdf=newSimpleDateFormat("MM/dd/yyyy HH:mm aa"); StringgetCurrentDateTime= sdf.format(c.getTime()); String getMyTime="05/19/2016 09:45 PM "; Log.d("getCurrentDateTime",getCurrentDateTime); // getCurrentDateTime: 05/23/2016 18:49 PM
if (getCurrentDateTime.compareTo(getMyTime) < 0) {
} else { Log.d("Return","getMyTime older than getCurrentDateTime "); }
Ответ 3
You can directly create a Calendar from a Date:
CalendarvalidDate=newGregorianCalendar(); validDate.setTime(strDate); if (Calendar.getInstance().after(validDate)) { catalog_outdated = 1; }
Ответ 4
Note that the right format is ("dd/MM/yyyy") before the code works. "mm" means minuts !