Comparar fechas en Java

Autor: Roger Morrison
Fecha De Creación: 24 Septiembre 2021
Fecha De Actualización: 1 Mes De Julio 2024
Anonim
JAVA EXTRA - COMPARAR FECHAS MES Y AÑO
Video: JAVA EXTRA - COMPARAR FECHAS MES Y AÑO

Contenido

Hay varias formas de comparar fechas en Java. Internamente, una fecha se representa como un punto (largo) en el tiempo: el número de milisegundos que han pasado desde el 1 de enero de 1970. En Java, date es el objeto Date, lo que significa que contiene varios métodos para comparar fechas. Cualquier método de comparar dos fechas básicamente comparará el tiempo transcurrido de ambas fechas.

Al paso

Método 1 de 4: uso del comando "compareTo"

  1. Utilice compareTo. Date implementa ComparableDate>, por lo que dos fechas se pueden comparar directamente entre sí utilizando el método compareTo. Si las fechas indican el mismo momento en el tiempo, el método devolverá cero. Si la fecha que se compara es anterior al argumento de fecha, se devolverá un valor negativo. Si la fecha que se compara es posterior a la del argumento de fecha, se devolverá un valor positivo. Si las fechas son las mismas, se devolverá un cero.
  2. Cree los objetos de fecha. Tendrá que crear cada objeto de fecha antes de poder comenzar a compararlos. Una forma de hacerlo es aplicar la clase SimpleDateFormat. Esto le permite ingresar fechas fácilmente en objetos de fecha.

      SimpleDateFormat sdf = new SimpleDateFormat ("aaaa-MM-dd"); // Para declarar valores en nuevos objetos de fecha.Utilice el mismo formato de fecha al crear fechas Date date1 = 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

  3. Compara los objetos de fecha. A continuación se muestra cada caso: menor que, igual y mayor que.

      date1.compareTo (fecha2); // fecha1 fecha2, menor que 0 fecha2.compareTo (fecha1); // fecha2> fecha1, devuelve mayor que 0 fecha1.compareTo (fecha3); // fecha1 = fecha3, devuelve 0

Método 2 de 4: uso de los métodos "igual, después y antes"

  1. Utilice iguales, antes y después. Las fechas se pueden comparar entre sí utilizando los métodos iguales, posteriores y anteriores. Si dos fechas indican la misma hora, el método equals devolverá "verdadero". Los ejemplos utilizan las fechas creadas previamente mediante el método compareTo.
  2. Compare utilizando el método anterior. El siguiente código muestra un caso de verdadero y falso. Si date1 es anterior a date2, el resultado es verdadero. Si no, before devuelve falso.

      System.out.print (date1.before (date2)); // imprime verdadero System.out.print (date2.before (date2)); // imprimir falso

  3. Compare esto con el método after. El siguiente código muestra un caso de verdadero y falso. Si date2 es posterior a date1, after devuelve verdadero. Si no, after devuelve falso.

      System.out.print (date2.after (date1)); // imprime verdadero System.out.print (date1.after (date2)); // imprime falso

  4. Compara usando el método de iguales. El siguiente código muestra un caso de verdadero y falso. Si las fechas son las mismas, equals devuelve verdadero. Si no, equals devuelve falso.

      System.out.print (date1.equals (date3)); // imprime verdadero System.out.print (date1.equals (date2)); // imprime falso

Método 3 de 4: uso de la clase Calendar

  1. Utilice la clase Calendar. La clase Calendar también tiene los métodos compareTo, equals, after y before, que funcionan de la misma manera que se describió anteriormente para la clase de fecha. Entonces, si los datos de la fecha se guardan en un calendario, no es necesario extraer la "fecha", solo para comparar dos fechas.
  2. Crea una instancia de Calendar. Para utilizar los métodos de Calendario, necesita algunas instancias de Calendario. Afortunadamente, puede utilizar el tiempo generado por las instancias de fecha.

      Calendar cal1 = Calendar.getInstance (); // declara cal1 Calendar cal2 = Calendar.getInstance (); // declara cal2 Calendar cal3 = Calendar.getInstance (); // declara cal3 cal1.setTime (date1); // aplica la fecha a cal1 cal2.setTime (date2); cal3.setTime (fecha3);

  3. Compare cal1 y cal2 usando antes. El siguiente código devuelve verdadero porque cal1 es anterior a cal2.

      System.out.print (cal1.before (cal2)); // imprimir verdadero

  4. Compare cal1 y cal2 usando after. El siguiente código devuelve falso, porque cal1 es anterior a cal2.

      System.out.print (cal1.after (cal2)); // imprimir falso

  5. Compare cal1 y cal2 usando iguales. El siguiente código muestra un ejemplo de verdadero y falso. La condición depende de las instancias de Calendar que se comparan. El siguiente código devuelve "verdadero" y luego "falso" en la siguiente línea.

      System.out.println (cal1.equals (cal3)); // imprime verdadero: cal1 == cal3 System.out.print (cal1.equals (cal2)); // imprime falso: cal1! = cal2

Método 4 de 4: uso del método "getTime"

  1. Utilice getTime. También es posible comparar directamente dos puntos de tiempo, aunque es probable que cualquiera de los enfoques anteriores produzca resultados más legibles y, por lo tanto, se prefiere. Esta es una comparación de dos tipos de datos primitivos, por lo que se puede hacer con "", ">" y "==".
  2. Cree los objetos de tiempo "largo". Antes de poder comparar fechas, debe crear números enteros largos a partir de los datos de los objetos Date creados anteriormente. Afortunadamente, el método getTime () hará la mayor parte del trabajo por usted.

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

  3. Utilice una ecuación "menor que". Utilice un símbolo "menor que" () para comparar estos dos valores enteros. Dado que time1 es menor que time2, el primer mensaje debe imprimirse en la pantalla. La instrucción else se incluye para la sintaxis correcta.

      if (time1 time2) {System.out.println ("date1 es anterior a date2"); // imprime porque time1 time2} else {System.out.println ("date1 es posterior o igual a date2"); }

  4. Haga una comparación "mayor que". Utilice el símbolo "mayor que" (>) para comparar estos dos números enteros. Dado que time1 es mayor que time2, el primer mensaje se imprime en la pantalla. La instrucción else se incluye para una sintaxis correcta.

      if (time2> time1) {System.out.println ("la fecha2 viene después de la fecha1"); // imprime porque time2> time1} else {System.out.println ("date2 es anterior o igual a date1"); }

  5. Haga una comparación "igual a". Utilice el símbolo (==) para comparar estos dos números enteros. Dado que time1 es igual a time3, se debe imprimir el primer mensaje. Si el programa llega a la instrucción else, significa que los tiempos no son los mismos.

      if (time1 == time2) {System.out.println ("Las fechas son iguales"); } else {System.out.println ("Las fechas no son iguales"); // imprimir porque time1! = time2}