Я вычислил одну дату с классом Calendar
, а затем сравнил ее с двумя датами, которые я получил из запроса, выполненного с помощью Hibernate. Когда я сравниваю даты, я становлюсь «не равным», когда сравниваю endDate
с thisIter
.Сравнение дат, возвращающих нечетные результаты
Я попробовал распечатать некоторые отладочные заявления. Если я печатаю как Date
, я вижу небольшую разницу в напечатанном тексте в строке 1. Однако, если я отформатирую его с помощью SDF и распечатаю, они выглядят точно так же в напечатанном тексте в строке 2.
В чем разница в датах и почему он не отображается в SDF-формате.
Это код, я использую для печати отладки:
final SimpleDateFormat sdft = new SimpleDateFormat("ddMMyyyyhhmmss");
System.out.println(thisIter + ": " + new Date(r.getFromDate().getTime()) + "(" + new Date(thisIter.getTime()) + ")" + new Date(r.getToDate().getTime()));
System.out.println(thisIter + ": " + sdft.format(r.getFromDate().getTime()) + "(" + sdft.format(thisIter.getTime()) + ")" + sdft.format(r.getToDate().getTime()));
Это выход:
Wed Oct 07 12:00:00 IST 2015: Sat Oct 03 00:00:00 IST 2015(Wed Oct 07 12:00:00 IST 2015)Wed Oct 07 00:00:00 IST 2015
Wed Oct 07 12:00:00 IST 2015: 03102015120000(07102015120000)07102015120000
Я написал функцию усечения, которая должна удалить компонент времени. Только, он оставляет дату в 12 часов вместо полуночи! Это потому, что я использовал c.set (Calendar.HOUR, 0); вместо c.set (Calendar.HOUR_OF_DAY, 0); – Teddy