Cómo comparar dos fechas en Java
-
before()
método para comparar dos fechas en Java -
after()
método para comparar dos fechas en Java -
equals()
método para comparar dos fechas en Java -
compareTo()
método para comparar dos fechas en Java
En este tutorial, aprenderemos múltiples métodos para comparar Date
en Java
. Para conseguir los resultados deseados, necesitamos métodos específicos, es decir, before()
, after()
, equals()
y compareTo()
.
before()
método para comparar dos fechas en Java
El primer método es el método before()
en la clase Date
de Java que realiza la comparación del objeto Date
y el instante Date
dado. Devuelve true
cuando el objeto Data
llega antes que el objeto Date
dado.
Considera el siguiente código:
// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
public static void main(String[] args) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = dateFormat.parse("2019-09-16");
Date date2 = dateFormat.parse("2020-01-25");
System.out.println("Date-1: " + dateFormat.format(date1));
System.out.println("Date-2: " + dateFormat.format(date2));
if (date1.before(date2)) {
System.out.println("Date-1 is before Date-2");
}
} catch (ParseException ex) {
}
}
}
Producción :
Date-1: 2019-09-16
Date-2: 2020-01-25
Date-1 is before Date-2
after()
método para comparar dos fechas en Java
Otro enfoque para lograr esta comparación es usando el método after()
en la clase Date
de Java. Este método es opuesto al anterior método before
y devuelve true
cuando el objeto Data
llega más tarde que el objeto Date
dado.
Considera el siguiente código:
// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
public static void main(String[] args) {
try {
SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdformat.parse("2020-01-25");
Date date2 = sdformat.parse("2019-09-16");
System.out.println("Date-1: " + sdformat.format(date1));
System.out.println("Date-2: " + sdformat.format(date2));
if (date1.after(date2)) {
System.out.println("Date-1 is after Date-2");
}
} catch (ParseException ex) {
}
}
}
Producción :
Date-1: 2020-01-25
Date-2: 2019-09-16
Date-1 is after Date-2
equals()
método para comparar dos fechas en Java
Otro enfoque es usar el método equals()
en la clase Date
de Java. Compara dos fechas y devuelve true
si son iguales.
Considera el siguiente código:
// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
public static void main(String[] args) {
try {
SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-dd-mm");
Date date1 = sdformat.parse("2020-01-25");
Date date2 = sdformat.parse("2020-01-25");
System.out.println("Date-1: " + sdformat.format(date1));
System.out.println("Date-2: " + sdformat.format(date2));
if (date1.equals(date2)) {
System.out.println("Date-1 is same as Date-2");
}
} catch (ParseException ex) {
}
}
}
Producción :
Date-1: 2020-01-25
Date-2: 2020-01-25
Date-1 is same as Date-2
compareTo()
método para comparar dos fechas en Java
La última aproximación es el método compareTo()
en la clase Date
de Java. Compara dos fechas y devuelve diferentes valores basados en el resultado de la comparación.
- Devuelve
0
si el argumento date es igual al objetoDate
. - Devuelve un valor positivo si el objeto
Date
está después de la fecha del argumento - Devuelve un negativo si el objeto
Date
es anterior a la fecha del argumento.
Considere el siguiente código:
// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
public static void main(String[] args) {
try {
SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdformat.parse("2020-01-25");
Date date2 = sdformat.parse("2020-01-23");
System.out.println("Date-1: " + sdformat.format(date1));
System.out.println("Date-2: " + sdformat.format(date2));
if (date1.compareTo(date2) > 0) {
System.out.println("Date-1 is after Date-2");
} else if (date1.compareTo(date2) < 0) {
System.out.println("Date-1 is before Date-2");
} else if (date1.compareTo(date2) == 0) {
System.out.println("Date-1 is same as Date-2");
}
} catch (ParseException ex) {
}
}
}
Producción :
Date-1: 2020-01-25
Date-2: 2020-01-23
Date-1 is after Date-2