¿Cómo comparar fechas en Java?
La fecha tiene métodos anteriores y posteriores y se pueden comparar entre sí de la siguiente manera:
if(todayDate.after(historyDate) && todayDate.before(futureDate)) {
// In between
}
Para una comparación inclusiva:
if(!historyDate.after(todayDate) && !futureDate.before(todayDate)) {
/* historyDate <= todayDate <= futureDate */
}
También puede probar Joda-Time, pero tenga en cuenta que:
Joda-Time es el de facto biblioteca estándar de fecha y hora para Java anterior a Java SE 8. Ahora se solicita a los usuarios que migren a java.time (JSR-310).
Los back-ports están disponibles para Java 6 y 7, así como para Android.
Utilice comparar con:
date1.compareTo(date2);
Las siguientes son las formas más comunes de comparar dates
(mi preferencia es Enfoque 1 ):
Enfoque 1:Usar Date.before()
, Date.after()
y Date.equals(
)
if (date1.after(date2)) {
System.out.println("Date1 is after Date2");
}
if (date1.before(date2)) {
System.out.println("Date1 is before Date2");
}
if (date1.equals(date2)) {
System.out.println("Date1 is equal Date2");
}
Enfoque 2:Date.compareTo()
if (date1.compareTo(date2) > 0) {
System.out.println("Date1 is after Date2");
} else if (date1.compareTo(date2) < 0) {
System.out.println("Date1 is before Date2");
} else {
System.out.println("Date1 is equal to Date2");
}
Enfoque 3:Calender.before()
, Calender.after(
) y Calender.equals()
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
if (cal1.after(cal2)) {
System.out.println("Date1 is after Date2");
}
if (cal1.before(cal2)) {
System.out.println("Date1 is before Date2");
}
if (cal1.equals(cal2)) {
System.out.println("Date1 is equal Date2");
}