4 spôsoby, ako porovnať dva dátumy v Jave

Obsah:

4 spôsoby, ako porovnať dva dátumy v Jave
4 spôsoby, ako porovnať dva dátumy v Jave

Video: 4 spôsoby, ako porovnať dva dátumy v Jave

Video: 4 spôsoby, ako porovnať dva dátumy v Jave
Video: Как работает Spring Boot и что такое auto-configuration. Магия? 2024, November
Anonim

Existuje mnoho spôsobov, ako porovnať dva dátumy v programovacom jazyku Java. V počítačoch je dátum reprezentovaný číslom (dátový typ Long) v jednotkách času - to znamená počet milisekúnd, ktoré uplynuli od 1. januára 1970. V Jave je dátum objekt, čo znamená, že má niekoľko spôsobov porovnávania. Akákoľvek metóda použitá na porovnanie dvoch dátumov je v zásade porovnanie časových jednotiek týchto dvoch dátumov.

Krok

Metóda 1 zo 4: Použitie porovnávača

4301351 1
4301351 1

Krok 1. Použite porovnávač

Objekt Dátum implementuje porovnateľné, takže 2 dátumy je možné navzájom porovnávať priamo pomocou metódy porovnať. Ak majú oba dátumy rovnaký počet v časových jednotkách, metóda vráti nulu. Ak je druhý dátum menší ako prvý, vráti sa hodnota menšia ako nula. Ak je druhý dátum väčší ako prvý, metóda vráti hodnotu väčšiu ako nula. Ak sú oba dátumy rovnaké, metóda vráti nulovú hodnotu.

4301351 2
4301351 2

Krok 2. Vytvorte viacero objektov dátumu

Pred porovnaním musíte vytvoriť viacero objektov dátumu. Jeden z najľahších spôsobov, ako to urobiť, je použiť triedu SimpleDateFormat. Táto trieda uľahčuje prevod vstupnej hodnoty dátumu na objekt dátumu.

    SimpleDateFormat sdf = nové SimpleDateFormat ("rrrr-MM-dd"). Na deklarovanie hodnoty v novom '' Objektovom dátume '' použite pri vytváraní dátumu rovnaký formát dátumu. Dátum dátumu1 = sdf.parse ("1995-02-23"); // date1 je 23. február 1995 Dátum date2 = sdf.parse ("2001-10-31"); // date2 je 31. október 2001 Dátum date3 = sdf.parse ("1995-02-23"); // date3 je 23. február 1995

4301351 3
4301351 3

Krok 3. Porovnajte objekty dátumu

Nasledujúci kód vám ukáže príklady pre každý prípad - menej ako, rovnako a viac ako.

    date1.compareTo (dátum2); // date1 <date2, vráti hodnotu menšiu ako 0 date2.compareTo (date1); // date2> date1, vráti hodnotu väčšiu ako 0 date1.compareTo (date3); // date1 = date3, takže na konzole bude vychádzať 0

Metóda 2 zo 4: Použitie rovná sa, po a pred

4301351 4
4301351 4

Krok 1. Použite rovné hodnoty, po a pred

Dátumy je možné porovnávať pomocou metód rovná sa, po a pred. Ak majú dva dátumy v čase rovnakú hodnotu, metóda equals vráti hodnotu true. Nasledujúci príklad bude používať objekt Date vytvorený v ukážkovej metóde porovnania.

4301351 5
4301351 5

Krok 2. Porovnajte s predchádzajúcou metódou

Nasledujúci kód ukazuje príklad prípadu, ktorý vracia hodnoty true a false. Ak je dátum1 dátumom pred dátumom2, metóda before vráti hodnotu true. V opačnom prípade metóda before vráti hodnotu false.

    System.out.print (date1.before (date2)); // zobrazenie hodnoty '' true '' System.out.print (date2.before (date2)); // vráti hodnotu '' false ''

4301351 6
4301351 6

Krok 3. Porovnajte pomocou metódy after

Nasledujúci kód ukazuje príklad prípadu, ktorý vracia hodnoty true a false. Ak je dátum2 dátum po dátume1, metóda after vráti hodnotu true. V opačnom prípade metóda after vráti hodnotu false.

    System.out.print (date2.after (date1)); // display the value '' true 'System.out.print (date1.after (date2)); // display the value' 'false' '

4301351 7
4301351 7

Krok 4. Porovnajte s metódou rovná sa

Nasledujúci kód ukazuje príklad prípadu, ktorý vracia hodnoty true a false. Ak sú oba dátumy rovnaké, metóda equals vráti hodnotu true. V opačnom prípade metóda equals vráti hodnotu false.

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

Metóda 3 zo 4: Používanie Kalendára tried

4301351 8
4301351 8

Krok 1. Použite Kalendár tried

Trieda Calendar má tiež metódy compareTo, equals, after a before, ktoré fungujú rovnako ako tie, ktoré boli predtým popísané pre triedu Date. Ak sú teda informácie o dátume uložené v triednom kalendári, dátum nemusíte extrahovať, aby ste mohli vykonať porovnanie.

4301351 9
4301351 9

Krok 2. Vytvorte inštanciu Kalendára

Ak chcete používať metódy v Kalendári tried, musíte vytvoriť viacero inštancií Kalendára. Našťastie môžete použiť hodnoty z predtým vytvorenej inštancie dátumu.

    Calendar cal1 = Calendar.getInstance (); // deklarácia cal1 Calendar cal2 = Calendar.getInstance (); // deklarácia cal2 Calendar cal3 = Calendar.getInstance (); // deklarujte cal3 cal1.setTime (date1); // vložte dátum do cal1 cal2.setTime (date2); cal3.setTime (dátum3);

4301351 10
4301351 10

Krok 3. Porovnajte cal1 a cal2 pomocou predchádzajúcej metódy

Nasledujúci kód vygeneruje hodnotu tr

    System.out.print (cal1.before (cal2)); // vráti hodnotu '' true ''

4301351 11
4301351 11

Krok 4. Porovnajte cal1 a cal2 pomocou metódy after

Nasledujúci kód vráti hodnotu false, pretože cal1 je dátum pred cal2.

    System.out.print (cal1.after (cal2)); // vráti hodnotu '' false ''

4301351 12
4301351 12

Krok 5. Porovnajte cal1 a cal2 pomocou metódy equals

Nasledujúci kód ukáže príklad prípadu, ktorý vracia true a false. Stav závisí od porovnávanej inštancie Kalendára. Nasledujúci kód vráti v nasledujúcom riadku hodnotu „true“a potom „false“.

    System.out.println (cal1.equals (cal3)); // vráti hodnotu '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // vráti hodnotu '' false '': cal1! = cal2

Metóda 4 zo 4: Použitie getTime

4301351 13
4301351 13

Krok 1. Použite getTime

Môžete tiež priamo porovnať hodnoty časových jednotiek dvoch dátumov, aj keď predchádzajúce dve metódy môžu byť čitateľnejšie a vhodnejšie. Týmto spôsobom budete porovnávať 2 primitívne typy údajov, takže môžete použiť operandy „“a „==“.

4301351 14
4301351 14

Krok 2. Vytvorte časový objekt vo formáte dlhé číslo

Pred porovnaním dátumov musíte z predtým vytvoreného objektu Date vytvoriť hodnotu Long Integer. Našťastie to za vás urobí metóda getTime ().

    long time1 = getTime (date1); // deklarujte primitívny čas1 dátumu1 dlhý čas2 = getTime (dátum2); // deklarujte primitívnu hodnotu time2 dátumu2

4301351 15
4301351 15

Krok 3. Vykonajte menej ako porovnanie

Na porovnanie týchto dvoch celočíselných hodnôt použite operand menší ako (<). Pretože time1 je menší ako time2, zobrazí sa prvá správa. Na dokončenie syntaxe je zahrnutý príkaz else.

    if (time1 <time2) {System.out.println ("date1 is the date before date2"); // sa zobrazí, pretože time1 <time2} else {System.out.println ("date1 is not a date before date2"); }

4301351 16
4301351 16

Krok 4. Vykonajte viac ako porovnanie

Na porovnanie týchto dvoch celočíselných hodnôt použite operand väčší ako (>). Pretože time1 je väčší ako time2, zobrazí sa prvá správa. Na dokončenie syntaxe je zahrnutý príkaz else.

    if (time2> time1) {System.out.println ("date2 is the date after date1"); // sa zobrazí, pretože time2> time1} else {System.out.println ("date2 is not the date after date1"); }

4301351 17
4301351 17

Krok 5. Vykonajte porovnanie s rovným

Na porovnanie týchto dvoch celých čísel použite funkciu operandu na kontrolu rovnosti hodnôt (==). Pretože time1 sa rovná time3, zobrazí sa prvá správa. Ak tok programu prejde do príkazu else, znamená to, že dva krát nemajú rovnakú hodnotu.

    if (time1 == time2) {System.out.println („oba dátumy sú rovnaké“); } else {System.out.println ("1. nie je to isté ako 2."); // sa zobrazí, pretože time1! = time2}

Odporúča: