4 sätt att jämföra två datum i Java

Innehållsförteckning:

4 sätt att jämföra två datum i Java
4 sätt att jämföra två datum i Java

Video: 4 sätt att jämföra två datum i Java

Video: 4 sätt att jämföra två datum i Java
Video: Så HÄR ändrar du din hudvårdsrutin under sommaren 2024, April
Anonim

Det finns olika sätt att jämföra Java -datum. Internt representeras ett datum som en (lång) tidpunkt - antalet millisekunder som har gått sedan 1 januari 1970. I Java är Date ett objekt, vilket innebär att det innehåller flera metoder för jämförelse. Varje metod för att jämföra två datum jämför i huvudsak datumens tider.

Steg

Metod 1 av 4: Använda comparTo

4301351 1
4301351 1

Steg 1. Använd CompareTo

Date implementes Comparable och så kan två datum jämföras direkt med metoden CompareTo. Om datumen är för samma tidpunkt returnerar metoden noll. Om datumet som jämförs före datumargumentet returneras ett värde mindre än noll. Om datumet som jämförs ligger efter datumargumentet returneras ett värde större än noll. Om datumen är lika returneras värdet 0.

4301351 2
4301351 2

Steg 2. Skapa datumobjekten

Du måste skapa varje datumobjekt innan du kan börja jämföra dem. Ett sätt att göra detta är att använda klassen SimpleDateFormat. Det möjliggör enkel inmatning av datumvärden i datumobjekt.

    SimpleDateFormat sdf = new SimpleDateFormat ("åååå-MM-dd"); // För att deklarera värden i nya datumobjekt. använd samma datumformat när du skapar datum Date date1 = sdf.parse ("1995-02-23"); // datum1 är 23 februari 1995 Datum datum2 = sdf.parse ("2001-10-31"); // datum2 är 31 oktober 2001 Datum datum3 = sdf.parse ("1995-02-23"); // date3 är 23 februari 1995

4301351 3
4301351 3

Steg 3. Jämför datumobjekten

Koden nedan visar dig varje fall - mindre än, lika med och större än.

    date1.compareTo (date2); // date1 <date2, returnerar mindre än 0 date2.compareTo (date1); // date2> date1, returnerar större än 0 date1.compareTo (date3); // date1 = date3, så skrivs ut 0 till konsolen

Metod 2 av 4: Använda lika, efter och före

4301351 4
4301351 4

Steg 1. Använd lika, efter och före

Datum kan jämföras med lika, efter och före metoder. Om två datum är för samma tidpunkt kommer metoden för lika med att returnera sant. Exemplen använder tidigare skapade datum från metoden CompareTo.

4301351 5
4301351 5

Steg 2. Jämför med metoden före

Koden nedan visar ett sant och falskt fall. Om datum1 är före datum2, före avkastning sant. Om det inte är det, före returnerar falskt.

    System.out.print (datum1.före (datum2)); // skriver ut äkta System.out.print (date2.before (date2)); // skriver ut falskt

4301351 6
4301351 6

Steg 3. Jämför med eftermetoden

Koden nedan visar ett sant och falskt fall. Om datum2 är efter datum1, efter avkastningen sant. Om det inte är det, efter returer falskt.

    System.out.print (date2.after (date1)); // skriver ut true System.out.print (date1.after (date2)); // skriver ut falskt

4301351 7
4301351 7

Steg 4. Jämför med likvärdig metod

Koden nedan visar ett sant och falskt fall. Om datumen är lika, returnerar lika sann. Om de inte är det returnerar lika felaktiga.

    System.out.print (date1.equals (date3)); // skriver ut true System.out.print (date1.equals (date2)); // skriver ut falskt

Metod 3 av 4: Använda kalenderklassen

4301351 8
4301351 8

Steg 1. Använd kalendern

Kalenderklassen har också jämförelseTo, lika med, efter och före metoder som fungerar på samma sätt som beskrivs ovan för datumklassen. Så om datuminformationen förvaras i en kalender behöver du inte extrahera datumet bara för att göra en jämförelse.

4301351 9
4301351 9

Steg 2. Skapa instanser av kalendern

För att använda kalendermetoderna behöver du några kalenderinstanser. Lyckligtvis kan du bara ta tiderna från de redan skapade datuminstanserna.

    Kalender cal1 = Calendar.getInstance (); // deklarerar cal1 Kalender cal2 = Calendar.getInstance (); // deklarerar cal2 Kalender cal3 = Calendar.getInstance (); // deklarerar cal3 cal1.setTime (datum1); // tillämpar datum på cal1 cal2.setTime (datum2); cal3.setTime (datum3);

4301351 10
4301351 10

Steg 3. Jämför cal1 och cal2 med tidigare

Koden nedan ska skriva ut true eftersom cal1 är före cal2.

    System.out.print (cal1.before (cal2)); // kommer att skriva ut true

4301351 11
4301351 11

Steg 4. Jämför cal1 och cal2 med after

Koden nedan ska skriva ut falsk eftersom cal1 är före cal2.

    System.out.print (cal1.after (cal2)); // skriver ut falskt

4301351 12
4301351 12

Steg 5. Jämför cal1 och cal2 med lika

Koden nedan visar ett exempel på både ett sant och falskt fall. Villkoret beror på att kalenderinstanserna jämförs. Koden ska skriva ut "true" och sedan "false" på nästa rad.

    System.out.println (cal1.equals (cal3)); // skriver ut true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // skriver ut falskt: cal1! = cal2

Metod 4 av 4: Använda getTime

4301351 13
4301351 13

Steg 1. Använd getTime

Det är också möjligt att direkt jämföra tidpunkten för två datum, även om någon av de tidigare metoderna sannolikt kommer att vara mer läsbar och så att föredra. Detta blir en jämförelse av två primitiva datatyper, så det kan göras med "" och "==".

4301351 14
4301351 14

Steg 2. Skapa långtidens objekt

Innan du kan jämföra datum måste du skapa långa heltal med data från de tidigare skapade datumobjekten. Lyckligtvis kommer metoden getTime () att göra det mesta för dig.

    long time1 = getTime (date1); // förklarar primitiv tid1 från datum1 lång tid2 = getTime (datum2); // förklarar primitiv tid2 från datum2

4301351 15
4301351 15

Steg 3. Gör en mindre än jämförelse

Använd symbolen mindre än (<) för att jämföra dessa två heltalsvärden. Eftersom tid1 är mindre än tid 2, bör det första meddelandet skrivas ut. Den andra satsen ingår för korrekt syntax.

    if (time1 <time2) {System.out.println ("datum1 är före datum2"); // kommer att skriva ut sedan time1 <time2} annars {System.out.println ("datum1 är inte före datum2"); }

4301351 16
4301351 16

Steg 4. Gör en större jämförelse

Använd symbolen större än (>) för att jämföra dessa två heltalsvärden. Eftersom tid1 är större än tid 2, bör det första meddelandet skrivas ut. Den andra satsen ingår för korrekt syntax.

    if (time2> time1) {System.out.println ("datum2 är efter datum1"); // kommer att skriva ut sedan time2> time1} annars {System.out.println ("datum2 är inte efter datum1"); }

4301351 17
4301351 17

Steg 5. Gör en likvärdig jämförelse

Använd symbolen för att kontrollera om det är lika (==) för att jämföra dessa två heltalsvärden för jämlikhet. Eftersom tid1 är lika med tid3, bör det första meddelandet skrivas ut. Om programmet kommer till annat -påståendet betyder det att tiderna inte är lika.

    if (time1 == time2) {System.out.println ("datumen är lika"); } annat {System.out.println ("datumen är inte lika"); // kommer att skriva ut sedan time1! = time2}

Rekommenderad: