4 Möglichkeiten, zwei Daten in Java zu vergleichen

Inhaltsverzeichnis:

4 Möglichkeiten, zwei Daten in Java zu vergleichen
4 Möglichkeiten, zwei Daten in Java zu vergleichen

Video: 4 Möglichkeiten, zwei Daten in Java zu vergleichen

Video: 4 Möglichkeiten, zwei Daten in Java zu vergleichen
Video: Material testing software testXpert III - Excel Export 2024, April
Anonim

Es gibt verschiedene Möglichkeiten, Java-Daten zu vergleichen. Intern wird ein Datum als (langer) Zeitpunkt dargestellt – die Anzahl der Millisekunden, die seit dem 1. Januar 1970 verstrichen sind. In Java ist Date ein Objekt, dh es enthält mehrere Vergleichsmethoden. Jede Methode zum Vergleichen zweier Datumsangaben vergleicht im Wesentlichen die Zeiten der Datumsangaben.

Schritte

Methode 1 von 4: Verwenden von CompareTo

4301351 1
4301351 1

Schritt 1. Verwenden Sie CompareTo

Date implementiert Comparable, sodass zwei Datumsangaben direkt mit der Methode CompareTo verglichen werden können. Wenn die Datumsangaben für denselben Zeitpunkt gelten, gibt die Methode null zurück. Wenn das verglichene Datum vor dem Datumsargument liegt, wird ein Wert kleiner als Null zurückgegeben. Wenn das verglichene Datum nach dem Datumsargument liegt, wird ein Wert größer Null zurückgegeben. Wenn die Daten gleich sind, wird der Wert 0 zurückgegeben.

4301351 2
4301351 2

Schritt 2. Erstellen Sie die Datumsobjekte

Sie müssen jedes Datumsobjekt erstellen, bevor Sie mit dem Vergleich beginnen können. Eine Möglichkeit hierfür besteht darin, die SimpleDateFormat-Klasse zu verwenden. Es ermöglicht die einfache Eingabe von Datumswerten in Datumsobjekte.

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //Zur Deklaration von Werten in neuen Datumsobjekten. Verwenden Sie dasselbe Datumsformat beim Erstellen von Datumsangaben Datum date1 = sdf.parse("1995-02-23"); //Datum1 ist der 23. Februar 1995 Datum Datum2 = sdf.parse("2001-10-31"); //date2 ist der 31. Oktober 2001 Date date3 = sdf.parse("1995-02-23"); //Datum3 ist der 23. Februar 1995

4301351 3
4301351 3

Schritt 3. Vergleichen Sie die Datumsobjekte

Der folgende Code zeigt Ihnen jeden Fall - kleiner als, gleich und größer als.

    date1.compareTo(date2); //date1 < date2, gibt weniger als 0 zurück date2.compareTo(date1); //date2 > date1, gibt größer als 0 zurück date1.compareTo(date3); //date1 = date3, wird also 0 auf die Konsole ausgeben

Methode 2 von 4: Verwenden von Equals, After und Before

4301351 4
4301351 4

Schritt 1. Verwenden Sie gleich, nach und vor

Datumsangaben können mit den Equals-, After- und Before-Methoden verglichen werden. Wenn zwei Datumsangaben für denselben Zeitpunkt gelten, gibt die equals-Methode true zurück. In den Beispielen werden zuvor erstellte Datumsangaben aus der Methode CompareTo verwendet.

4301351 5
4301351 5

Schritt 2. Vergleichen Sie mit der Vorher-Methode

Der folgende Code zeigt einen wahren und einen falschen Fall. Wenn date1 vor date2 liegt, gibt before true zurück. Ist dies nicht der Fall, gibt before false zurück.

    System.out.print (date1.before(date2)); // gibt true aus System.out.print (date2.before (date2)); // druckt falsch

4301351 6
4301351 6

Schritt 3. Vergleichen Sie mit der Nach-Methode

Der folgende Code zeigt einen wahren und einen falschen Fall. Wenn date2 nach date1 liegt, gibt after true zurück. Ist dies nicht der Fall, gibt after false zurück.

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

4301351 7
4301351 7

Schritt 4. Vergleichen Sie mit der Gleichheitsmethode

Der folgende Code zeigt einen wahren und einen falschen Fall. Wenn die Daten gleich sind, gibt equals true zurück. Ist dies nicht der Fall, gibt equals false zurück.

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

Methode 3 von 4: Verwenden der Kalenderklasse

4301351 8
4301351 8

Schritt 1. Verwenden Sie den Kalender

Die Kalenderklasse verfügt außerdem über die Methoden CompareTo, equals, after und before, die genauso funktionieren wie oben für die Date-Klasse beschrieben. Wenn die Datumsinformationen in einem Kalender gespeichert werden, ist es also nicht erforderlich, das Datum zu extrahieren, nur um einen Vergleich durchzuführen.

4301351 9
4301351 9

Schritt 2. Erstellen Sie Kalenderinstanzen

Um die Kalendermethoden zu verwenden, benötigen Sie einige Kalenderinstanzen. Glücklicherweise können Sie die Zeiten einfach aus den bereits erstellten Datumsinstanzen abrufen.

    Kalender cal1 = Calendar.getInstance(); //deklariert cal1 Kalender cal2 = Calendar.getInstance(); //deklariert cal2 Kalender cal3 = Calendar.getInstance(); // deklariert cal3 cal1.setTime (date1); // wendet Datum auf cal1 an cal2.setTime (date2); cal3.setTime(Datum3);

4301351 10
4301351 10

Schritt 3. Vergleichen Sie cal1 und cal2 mit vorher

Der folgende Code sollte true ausgeben, da cal1 vor cal2 liegt.

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

4301351 11
4301351 11

Schritt 4. Vergleichen Sie cal1 und cal2 mit after

Der folgende Code sollte false ausgeben, da cal1 vor cal2 liegt.

    System.out.print (cal1.after (cal2)); // druckt falsch

4301351 12
4301351 12

Schritt 5. Vergleichen Sie cal1 und cal2 mit Gleichen

Der folgende Code zeigt ein Beispiel für einen wahren und einen falschen Fall. Die Bedingung hängt von den verglichenen Kalenderinstanzen ab. Der Code sollte "true" ausgeben, dann "false" in der nächsten Zeile.

    System.out.println(cal1.equals(cal3)); // gibt wahr aus: cal1 == cal3 System.out.print(cal1.equals(cal2)); // gibt false aus: cal1 != cal2

Methode 4 von 4: GetTime verwenden

4301351 13
4301351 13

Schritt 1. Verwenden Sie getTime

Es ist auch möglich, den Zeitpunkt zweier Daten direkt zu vergleichen, obwohl jeder der vorherigen Ansätze wahrscheinlich besser lesbar und daher vorzuziehen ist. Dies wird ein Vergleich zweier primitiver Datentypen sein, so dass dies mit "", und "==" erfolgen kann.

4301351 14
4301351 14

Schritt 2. Erstellen Sie die Langzeitobjekte

Bevor Sie die Datumsangaben vergleichen können, müssen Sie mit den Daten aus den zuvor erstellten Datumsobjekten lange Ganzzahlen erstellen. Glücklicherweise erledigt die Methode getTime() die meiste Arbeit für Sie.

    lange Zeit1 = getTime(date1); // deklariert primitive time1 von date1 long time2 = getTime(date2); // deklariert primitive time2 von date2

4301351 15
4301351 15

Schritt 3. Machen Sie einen weniger als Vergleich

Verwenden Sie das Kleiner-als-Symbol (<), um diese beiden ganzzahligen Werte zu vergleichen. Da time1 kleiner als time 2 ist, sollte die erste Nachricht gedruckt werden. Die else-Anweisung ist für die richtige Syntax enthalten.

    if (time1 < time2) { System.out.println ("Datum1 liegt vor Datum2"); // wird seit time1 <time2 } else{ System.out.println("date1 ist nicht vor date2"); }

4301351 16
4301351 16

Schritt 4. Machen Sie einen größeren Vergleich

Verwenden Sie das Größer-als-Symbol (>), um diese beiden ganzzahligen Werte zu vergleichen. Da time1 größer als time 2 ist, sollte die erste Nachricht gedruckt werden. Die else-Anweisung ist für die richtige Syntax enthalten.

    if(time2 > time1) {System.out.println("date2 ist nach date1"); // druckt seit time2 > time1 } else{ System.out.println("date2 ist nicht nach date1"); }

4301351 17
4301351 17

Schritt 5. Führen Sie einen Gleichheitsvergleich durch

Verwenden Sie das Symbol, um auf Gleichheit zu prüfen (==), um diese beiden ganzzahligen Werte auf Gleichheit zu vergleichen. Da time1 gleich time3 ist, sollte die erste Nachricht gedruckt werden. Wenn das Programm zur else-Anweisung gelangt, bedeutet dies, dass die Zeiten nicht gleich sind.

    if(time1 == time2){ System.out.println("die Daten sind gleich"); } else{ System.out.println("Die Daten sind nicht gleich"); // wird seit time1 gedruckt!= time2}

Empfohlen: