У меня есть этот код, который сравнивает два объекта Date. Они хранят даты в другом формате, но имеют один и тот же день в значении.Различные форматы Объекты даты не равны
public class DateTest {
public static void main(String[] args) {
compareDate();
}
public static void compareDate() {
try {
DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'ICT' yyyy");
Date date = df.parse("Thu Jan 22 03:16:26 ICT 2015");
System.out.println(date.toString());
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date2 = df2.parse("2015-01-22 03:16:26.723");
System.out.println(date2.toString());
System.out.println(date.after(date2));
System.out.println(date2.after(date));
System.out.println(date2.equals(date));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Выход в моей машине дает:
Thu Jan 22 03:16:26 ICT 2015
Thu Jan 22 03:16:26 ICT 2015
false
true
false
Это, по-видимому, показывает, что две даты равны, но почему date2.after (дата) возвращает истину?
Извините, если это основная проблема.
миллисекунды Percision – MadProgrammer
Если вы посмотрите на количество миллисекунд, каждая дата приравнивает к 'date' =' 1421856986000' и 'date2' =' 1421856986723' есть разница в миллисекундах – MadProgrammer
Почему вы ожидаете ' 03: 16: 26.723 'НЕ будет позднее' 03: 16: 26'? –