Java >> Tutorial de Java >  >> Java

¿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");
}

Etiqueta Java