4 formas de comparar dos fechas en Java

Tabla de contenido:

4 formas de comparar dos fechas en Java
4 formas de comparar dos fechas en Java

Video: 4 formas de comparar dos fechas en Java

Video: 4 formas de comparar dos fechas en Java
Video: 3. Primer Programa en Java 2024, Mayo
Anonim

Hay muchas formas de comparar dos fechas en el lenguaje de programación Java. En las computadoras, una fecha está representada por un número (el tipo de datos Long) en unidades de tiempo, es decir, el número de milisegundos que han transcurrido desde el 1 de enero de 1970. En Java, Date es un objeto, lo que significa que tiene varios métodos para hacer comparaciones. Cualquier método utilizado para comparar dos fechas es esencialmente comparar las unidades de tiempo de las dos fechas.

Paso

Método 1 de 4: uso de compareTo

4301351 1
4301351 1

Paso 1. Utilice compareTo

El objeto Date implementa Comparable, por lo que 2 fechas se pueden comparar entre sí directamente con el método compareTo. Si ambas fechas tienen el mismo número en unidades de tiempo, el método devuelve cero. Si la segunda fecha es menor que la primera, se devuelve un valor menor que cero. Si la segunda fecha es mayor que la primera, el método devuelve un valor mayor que cero. Si ambas fechas son iguales, el método devolverá un valor nulo.

4301351 2
4301351 2

Paso 2. Cree varios objetos Date

Debe crear varios objetos Date antes de compararlos. Una de las formas más sencillas de hacerlo es utilizar la clase SimpleDateFormat. Esta clase facilita la conversión de un valor de fecha de entrada en un objeto Date.

    SimpleDateFormat sdf = new SimpleDateFormat ("aaaa-MM-dd"). Para declarar un valor en una nueva '' Fecha de objeto '', use el mismo formato de fecha al crear la fecha. Fecha fecha1 = sdf.parse ("1995-02-23"); // date1 es el 23 de febrero de 1995 Date date2 = sdf.parse ("2001-10-31"); // date2 es el 31 de octubre de 2001 Date date3 = sdf.parse ("1995-02-23"); // date3 es el 23 de febrero de 1995

4301351 3
4301351 3

Paso 3. Compare los objetos de fecha

El siguiente código le mostrará ejemplos para cada caso: menor que, igual y mayor que.

    date1.compareTo (fecha2); // fecha1 <fecha2, devuelve un valor menor que 0 fecha2.compareTo (fecha1); // fecha2> fecha1, devuelve un valor mayor que 0 fecha1.compareTo (fecha3); // fecha1 = fecha3, por lo que generará 0 en la consola

Método 2 de 4: uso de iguales, después y antes

4301351 4
4301351 4

Paso 1. Use iguales, después y antes

Las fechas se pueden comparar utilizando los métodos iguales, posteriores y anteriores. Si dos fechas tienen el mismo valor en el tiempo, el método equals devuelve verdadero. El siguiente ejemplo utilizará el objeto Date creado en el ejemplo método compareTo.

4301351 5
4301351 5

Paso 2. Compare con el método anterior

El siguiente código muestra un caso de ejemplo que devuelve verdadero y falso. Si date1 es una fecha anterior a date2, el método before devuelve verdadero. De lo contrario, el método before devuelve falso.

    System.out.print (date1.before (date2)); // mostrar el valor '' verdadero '' System.out.print (date2.before (date2)); // devuelve el valor '' falso ''

4301351 6
4301351 6

Paso 3. Compare usando el método after

El siguiente código muestra un caso de ejemplo que devuelve verdadero y falso. Si date2 es la fecha posterior a date1, el método after devuelve verdadero. De lo contrario, el método after devolverá falso.

    System.out.print (date2.after (date1)); // muestra el valor '' true '' System.out.print (date1.after (date2)); // muestra el valor '' false ''

4301351 7
4301351 7

Paso 4. Compare con el método de iguales

El siguiente código muestra un caso de ejemplo que devuelve verdadero y falso. Si ambas fechas son iguales, el método equals devuelve verdadero. De lo contrario, el método equals devuelve falso.

    System.out.print (date1.equals (date3)); // muestra el valor '' true '' System.out.print (date1.equals (date2)); // muestra el valor '' false ''

Método 3 de 4: uso del calendario de clases

4301351 8
4301351 8

Paso 1. Utilice el calendario de clases

La clase Calendar también tiene métodos compareTo, equals, after y before que funcionan igual que los descritos anteriormente para la clase Date. Entonces, si la información de la fecha se almacena en un Calendario de clase, no es necesario que extraiga la fecha solo para hacer una comparación.

4301351 9
4301351 9

Paso 2. Cree una instancia de Calendar

Para utilizar métodos en Class Calendar, debe crear varias instancias de Calendar. Afortunadamente, puede usar los valores de una instancia de Date creada previamente.

    Calendar cal1 = Calendar.getInstance (); // declara cal1 Calendar cal2 = Calendar.getInstance (); // declarar cal2 Calendar cal3 = Calendar.getInstance (); // declara cal3 cal1.setTime (date1); // pone la fecha en cal1 cal2.setTime (date2); cal3.setTime (fecha3);

4301351 10
4301351 10

Paso 3. Compare cal1 y cal2 usando el método before

El siguiente código generará el valor de tr

    System.out.print (cal1.before (cal2)); // devolverá el valor '' verdadero ''

4301351 11
4301351 11

Paso 4. Compare cal1 y cal2 usando el método after

El siguiente código devolverá falso porque cal1 es la fecha anterior a cal2.

    System.out.print (cal1.after (cal2)); // devuelve el valor '' falso ''

4301351 12
4301351 12

Paso 5. Compare cal1 y cal2 usando el método de iguales

El siguiente código mostrará un caso de ejemplo que devuelve verdadero y falso. El estado depende de la instancia de Calendar que se esté comparando. El siguiente código devolverá el valor "verdadero", luego "falso" en la siguiente línea.

    System.out.println (cal1.equals (cal3)); // devuelve el valor '' verdadero '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // devuelve el valor '' falso '': cal1! = cal2

Método 4 de 4: uso de getTime

4301351 13
4301351 13

Paso 1. Utilice getTime

También puede comparar directamente los valores de unidad de tiempo de dos fechas, aunque los dos métodos anteriores pueden ser más fáciles de leer y preferibles. De esta forma, comparará 2 tipos de datos primitivos, por lo que podrá utilizar los operandos "" y "==".

4301351 14
4301351 14

Paso 2. Cree un objeto de hora en formato de número largo

Antes de poder comparar fechas, debe crear un valor entero largo a partir del objeto Date creado anteriormente. Afortunadamente, el método getTime () lo hará por usted.

    long time1 = getTime (fecha1); // declara la primitiva time1 de date1 long time2 = getTime (date2); // declara el valor primitivo time2 de date2

4301351 15
4301351 15

Paso 3. Realice una comparación menor

Utilice el operando menor que (<) para comparar estos dos valores enteros. Dado que time1 es menor que time2, aparecerá el primer mensaje. La instrucción else se incluye para completar la sintaxis.

    if (time1 <time2) {System.out.println ("date1 es la fecha anterior a date2"); // se mostrará porque time1 <time2} else {System.out.println ("date1 no es una fecha anterior a date2"); }

4301351 16
4301351 16

Paso 4. Realice una comparación superior

Utilice el operando mayor que (>) para comparar estos dos valores enteros. Como time1 es mayor que time2, aparecerá el primer mensaje. La instrucción else se incluye para completar la sintaxis.

    if (time2> time1) {System.out.println ("date2 es la fecha posterior a date1"); // se mostrará porque time2> time1} else {System.out.println ("date2 no es la fecha posterior a date1"); }

4301351 17
4301351 17

Paso 5. Realice una comparación de iguales

Use la función de operando para verificar la igualdad de valores (==) para comparar estos dos enteros. Dado que time1 es igual a time3, aparecerá el primer mensaje. Si el flujo del programa entra en la instrucción else, significa que los dos tiempos no tienen el mismo valor.

    if (time1 == time2) {System.out.println ("ambas fechas son iguales"); } else {System.out.println ("El primero no es lo mismo que el segundo"); // se mostrará porque time1! = time2}

Recomendado: