Compareu les dates a Java

Autora: Roger Morrison
Data De La Creació: 24 Setembre 2021
Data D’Actualització: 1 Juliol 2024
Anonim
How to compare two dates  in java  | java  Date
Vídeo: How to compare two dates in java | java Date

Content

Hi ha diverses maneres de comparar les dates a Java. Internament, una data es representa com un punt (llarg) en el temps: el nombre de mil·lisegons que han passat des de l'1 de gener de 1970. A Java, data és l'objecte Date, que significa que conté múltiples mètodes per comparar dates. Qualsevol mètode de comparació de dues dates bàsicament compararà el temps transcorregut d’ambdues dates.

Per trepitjar

Mètode 1 de 4: utilitzant l'ordre "compareTo"

  1. Utilitzeu compareTo. Data implementa ComparableDate> i, per tant, es poden comparar dues dates directament entre si mitjançant el mètode compareTo. Si les dates indiquen el mateix moment, el mètode tornarà a zero. Si la data que es compara és anterior a l'argument de la data, es retornarà un valor negatiu. Si la data que es compara és posterior a l'argument de la data, es retornarà un valor positiu. Si les dates són les mateixes, es retornarà un zero.
  2. Creeu els objectes Date. Haureu de crear cada objecte de data abans de començar a comparar-los. Una manera de fer-ho és aplicar la classe SimpleDateFormat. Això us permet introduir fàcilment dates als objectes Date.

      SimpleDateFormat sdf = new SimpleDateFormat ("aaaa-MM-dd"); // Per declarar valors en objectes de data nous.Utilitzeu el mateix format de data quan creeu dates Data data = sdf.parse ("23-02 1995"); // data1 és el 23 de febrer de 1995 Data data2 = sdf.parse ("2001-10-31"); // data2 és el 31 d’octubre de 2001 Data data3 = sdf.parse ("23-02 1995"); // data3 és el 23 de febrer de 1995

  3. Compareu els objectes de data. A continuació es mostren cada cas: menor que, igual i superior a.

      data1.compareTo (data2); // data1 data2, menys de 0 date2.compareTo (data1); // data2> data1, retorna més de 0 date1.compareTo (date3); // data1 = data3, retorna 0

Mètode 2 de 4: utilitzar els mètodes "igual, després i abans"

  1. Utilitzeu iguals, després i abans. Les dates es poden comparar entre si mitjançant mètodes iguals, posteriors i anteriors. Si dues dates indiquen la mateixa hora, el mètode igual retornarà "true". Els exemples utilitzen les dates creades anteriorment mitjançant el mètode compareTo.
  2. Compareu amb el mètode d'abans. El codi següent mostra un cas de veritable i fals. Si la data1 és anterior a la data2, el resultat és cert. Si no, abans torna fals.

      System.out.print (data1.abans (data2)); // imprimeix System.out.print veritable (data2.abans (data2)); // imprimir fals

  3. Compareu això amb el mètode after. El codi següent mostra un cas de veritable i fals. Si la data2 és posterior a la data1, després retorna cert. Si no, després retorna false.

      System.out.print (date2.after (date1)); // print true System.out.print (date1.after (date2)); // print false

  4. Compareu amb el mètode igual. El codi següent mostra un cas de veritable i fals. Si les dates són les mateixes, l'equal retorna cert. En cas contrari, el valor és igual a false.

      System.out.print (date1.equals (date3)); // print true System.out.print (date1.equals (date2)); // print false

Mètode 3 de 4: utilitzar la classe Calendar

  1. Utilitzeu la classe Calendar. La classe Calendar també té els mètodes compareTo, igual, després i abans, que funcionen de la mateixa manera que es descriu anteriorment per a la classe de dates. Per tant, si les dades de la data es guarden en un calendari, no cal extreure "data", només cal comparar dues dates.
  2. Crea una instància de Calendar. Per utilitzar els mètodes de Calendar, necessiteu algunes instàncies de Calendar. Afortunadament, podeu utilitzar el temps generat per les instàncies Date.

      Calendari cal1 = Calendar.getInstance (); // declara cal1 Calendari cal2 = Calendar.getInstance (); // declara cal2 Calendari cal3 = Calendar.getInstance (); // declara cal3 cal1.setTime (data1); // aplica la data a cal1 cal2.setTime (data2); cal3.setTime (data3);

  3. Compareu cal1 i cal2 utilitzant abans. El codi següent retorna cert perquè cal1 és anterior a cal2.

      System.out.print (cal1.before (cal2)); // imprimeix true

  4. Compareu cal1 i cal2 fent servir after. El codi següent retorna fals, perquè cal1 és anterior a cal2.

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

  5. Compareu cal1 i cal2 fent servir iguals. El codi següent mostra un exemple de veritable i fals. La condició depèn de les comparacions de Calendar. El codi següent retorna "true" i després "false" a la següent línia.

      System.out.println (cal1.equals (cal3)); // imprimeix true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // imprimir fals: cal1! = cal2

Mètode 4 de 4: utilitzant el mètode "getTime"

  1. Utilitzeu getTime. També és possible comparar directament dos punts de temps, tot i que és probable que qualsevol dels enfocaments anteriors produeixi resultats més llegibles i, per tant, és preferible. Es tracta d'una comparació de dos tipus de dades primitives, de manera que es pot fer amb "", ">" i "==".
  2. Creeu els objectes de temps "llargs". Abans de poder comparar les dates, heu de crear enters enters llargs a partir de les dades dels objectes Data creats anteriorment. Afortunadament, el mètode getTime () us farà la major part del treball.

      long time1 = getTime (data1); // declara l'hora primitiva1 de la data1 molt temps2 = getTime (data2); // declara l’hora primitiva2 de la data2

  3. Utilitzeu una equació "inferior a". Utilitzeu un símbol "inferior a" () per comparar aquests dos valors enters. Com que time1 és inferior a time2, s’hauria d’imprimir el primer missatge a la pantalla. La sentència else s'inclou per a la sintaxi correcta.

      if (hora1 hora2) {System.out.println ("data1 és anterior a data2"); // imprimeix perquè time1 time2} else {System.out.println ("data1 és posterior o igual a data2"); }

  4. Feu una comparació "superior a". Utilitzeu el símbol "major que" (>) per comparar aquests dos enters. Com que time1 és superior a time2, el primer missatge s’imprimeix a la pantalla. La sentència else s'inclou per a una sintaxi correcta.

      if (hora2> hora1) {System.out.println ("la data2 arriba després de la data1"); // imprimeix perquè time2> time1} else {System.out.println ("data2 és anterior o igual a data1"); }

  5. Feu una comparació "igual a". Utilitzeu el símbol (==) per comparar aquests dos enters. Com que time1 és igual a time3, s’hauria d’imprimir el primer missatge. Si el programa arriba a la sentència else, vol dir que les hores no són les mateixes.

      if (time1 == time2) {System.out.println ("Les dates són iguals"); } else {System.out.println ("Les dates no són iguals"); // imprimeix perquè time1! = time2}