Comparați două date în Java

Există mai multe moduri de a compara datele Java. Pe plan intern, o dată este reprezentată ca un timp (lung) - numărul de milisecunde care au trecut de la 1 ianuarie 1970. În Java, o dată este un obiect, ceea ce înseamnă că conține mai multe metode de comparare. Fiecare metodă de comparare a două date compară esențial timpii de date.

metodă

Metoda 1
Cu compara

Imaginea intitulată 4301351 1
1
Utilizați compareTo. Data implementării Comparabil și, prin urmare, cele două date pot fi comparate direct cu metoda compareTo. Dacă datele sunt pentru același timp, metoda returnează nul. Dacă data comparată este înainte de argumentul datei, se returnează o valoare mai mică decât zero. Dacă data comparată este după argumentul datei, o valoare mai mare decât zero este returnată. Dacă datele sunt aceleași, valoarea zero este returnată.
  • Imaginea intitulată 4301351 2
    2
    Creați obiectele de date. Trebuie să creați fiecare obiect de date înainte de al compara. O modalitate de a face acest lucru este de a folosi clasa SimpleDateFormat. Acesta permite introducerea ușoară a datelor în obiecte date.
    SimpleDateFormat SDF = new SimpleDateFormat ( "aaaa-ll-zz") - // Pentru declarația de valori în noi obiecte de date. Utilizați același format atunci când crearea de date Data DATE1 = sdf.parse ( "1995-02-23") - // DATE1 este 23 februarie 1995Date DATE2 = sdf.parse ( "2001-10-31") - // este DATE2 31 octombrie 2001 Data date3 = sdf.parse ("1995-02-23") - // data3 este 23 februarie 1995
  • Imaginea intitulată 4301351 3
    3
    Comparați obiectele de date. Codul de mai jos vă arată fiecare caz - mai mic, egal și mai mare decât.
    date1.compareTo (data2) - // date1 < date2, gibt kleiner als 0 zurückdate2.compareTo(date1)- //date2 > data1, returnează mai mare decât 0date1.compareTo (data3) - // date1 = date3, returnează 0
  • Metoda 2
    Cu Equals, After and Before

    Imaginea intitulată 4301351 4
    1
    Utilizați egal, după și înainte. Datele pot fi comparate cu metodele egale, după și înainte. Dacă există două date pentru același timp, metoda returnă este egală cu adevărat. Exemplele utilizează datele create anterior ale metodei compareTo.
  • Imaginea intitulată 4301351 5
    2
    Comparație cu metoda înainte. Codul de mai jos prezintă un caz adevărat și unul fals. Dacă data1 este înainte de data2, înainte de returnarea true. Dacă nu, returnează înainte false.
    System.out.print (data1.before (date2)) - // returnează trueSystem.out.print (data2.before (date2)) - // returns false
  • Imagine cu denumirea 4301351 6
    3
    Comparați cu metoda după. Codul de mai jos prezintă un caz adevărat și unul fals. Dacă data2 este după data1, returnă true. Dacă nu, se întoarce după fals.
    System.out.print (data2.after (date1)) - // returnează trueSystem.out.print (data1.after (date2)) - // returns false
  • Imaginea intitulată 4301351 7
    4
    Comparați cu metoda este egală. Codul de mai jos prezintă un caz adevărat și unul fals. Dacă datele sunt egale, returnările egale sunt adevărate. Dacă nu, returnările sunt egale cu false.
    System.out.print (data1.equals (date3)) - // returnează trueSystem.out.print (date1.equals (date2)) - // returns false
  • Metoda 3
    Cu clasa Calendar

    Imaginea intitulată 4301351 8
    1
    Utilizați calendarul. Clasa calendarului are, de asemenea, comparativ, egal, după, și înainte de metode care funcționează în același mod ca cel descris mai sus pentru clasa de date. Deci, dacă informațiile despre dată se află într-un calendar, nu trebuie extras doar pentru a face o comparație.
  • Imaginea intitulată 4301351 9
    2
    Creați instanțe ale calendarului. Pentru a utiliza metodele de calendar, aveți nevoie de câteva instanțe din Calendar. Din fericire, puteți obține doar ori de la instanțele Data deja create.


    Calendarul cal 1 = Calendar.getInstance () - a declarat // cal1Calendar cal2 = Calendar.getInstance () - a declarat // cal2Calendar CAL3 = Calendar.getInstance () - // a declarat cal3cal1.setTime (DATE1) - // data cal1cal2 care trece. setTime (DATE2) -cal3.setTime (DATE3) -
  • Imaginea intitulată 4301351 10
    3
    Comparați cal1 și cal2 cu înainte. Codul de mai jos trebuie să imprimă adevărat, deoarece cal1 este în fața cal2.
    System.out.print (cal1.before (cal2)) - // returnează true
  • Imaginea intitulată 4301351 11
    4
    Comparați cal1 și cal2 cu după. Codul de mai jos ar trebui să tipărească fals deoarece cal1 este înaintea lui cal2.
    System.out.print (cal1.after (cal2)) - // returnează false
  • Imagine cu denumirea 4301351 12
    5
    Comparați cal1 și cal2 cu egal. Codul de mai jos prezintă un exemplu de caz adevărat și fals. Condiția depinde de cazurile comparate ale calendarului. Codul ar trebui să citească "adevărat" și apoi "fals" în rândul următor.
    Println (cal1.equals (CAL3)) - // return true: CAL 1 == cal3System.out.print (cal1.equals (cal2)) - // return false: cal 1 = cal2!
  • Metoda 4
    Cu getTime

    Imagine cu denumirea 4301351 13
    1
    Utilizați getTime. Puteți compara, de asemenea, calendarul a două date direct, deși abordările anterioare sunt probabil mai ușor de citit și, prin urmare, preferabile. Aceasta este o comparație a două tipuri de date primitive, deci poate fi numită "<", ">"și" == "sunt efectuate.
  • Imagine cu denumirea 4301351 14
    2
    Creați obiecte lungi. Înainte de a putea compara datele, trebuie să creați numere întregi lungi cu datele din obiectele de date create anterior. Din fericire, metoda getTime () face cea mai mare parte a muncii pentru tine.
    long time1 = getTime (date1) - // declară timpul primitiv1 de la data1long time2 = getTime (date2) - // declară timpul primitiv2 de la data2
  • Imaginea intitulată 4301351 15
    3
    Faceți-o mai mică decât comparația. Utilizați caracterul mic (<), um diese beiden Integer-Werte zu vergleichen. Da time1 kleiner ist als time 2, sollte die erste Nachricht ausgegeben werden. Das else Statement wird wegen der richtigen Syntax angegeben.
    în cazul în care (time1 < time2){System.out.println("date1 liegt vor date2")- //wird ausgegeben, da time1 < time2}else{System.out.println("date1 liegt nicht vor date2")-}
  • Imagine cu denumirea 4301351 16
    4
    Faceți-o mai mare decât comparația. Utilizați semnul mai mare (>) pentru a compara aceste două valori întregi. Deoarece timpul1 este mai mare decât timpul 2, este necesar să se emită primul mesaj. Instrucțiunea else este dată din cauza sintaxei corecte.
    în cazul în care (ora2> time1) {System.out.println ( "DATE2 DATE1 este mai târziu") - // de ieșire, deoarece ora2> time1} else {System.out.println ( "DATE2 nu este la Date1") -}
  • Imaginea intitulată 4301351 17
    5
    Faceți o comparație egală. Utilizați semnul egal (=) pentru a compara aceste două numere întregi pentru egalitate. Deoarece timpul1 este egal cu timpul 3, trebuie să fie afișat primul mesaj. Dacă programul ajunge la instrucțiunea altceva, înseamnă că de două ori nu sunt egale.
    în cazul în care (time1 Time2 ==) {System.out.println ( "datele sunt aceleași") -} else {System.out.println ( "datele nu este egal cu") - // este redat ca ora2 time1 =! }
  • Distribuiți pe rețelele sociale:

    înrudit