Es gibt viele Möglichkeiten, zwei Daten in der Programmiersprache Java zu vergleichen. In Computern wird ein Datum durch eine Zahl (den Datentyp Long) in Zeiteinheiten dargestellt – d. h. die Anzahl der Millisekunden, die seit dem 1. Januar 1970 verstrichen sind mehrere Methoden zum Vergleichen. Jede Methode, die zum Vergleichen zweier Daten verwendet wird, vergleicht im Wesentlichen die Zeiteinheiten der beiden Daten.
Schritt
Methode 1 von 4: Verwenden von CompareTo
Schritt 1. Verwenden Sie CompareTo
Das Date-Objekt implementiert Comparable, sodass 2 Datumsangaben direkt mit der Methode CompareTo miteinander verglichen werden können. Wenn beide Datumsangaben dieselbe Zahl in Zeiteinheiten aufweisen, gibt die Methode null zurück. Wenn das zweite Datum kleiner als das erste ist, wird ein Wert kleiner als Null zurückgegeben. Wenn das zweite Datum größer als das erste ist, gibt die Methode einen Wert größer als Null zurück. Wenn beide Daten gleich sind, gibt die Methode einen Nullwert zurück.
Schritt 2. Erstellen Sie mehrere Date-Objekte
Sie müssen mehrere Date-Objekte erstellen, bevor Sie sie vergleichen. Eine der einfachsten Möglichkeiten, dies zu tun, besteht darin, die SimpleDateFormat-Klasse zu verwenden. Diese Klasse macht es einfach, einen eingegebenen Datumswert in ein Date-Objekt zu konvertieren.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"). Um einen Wert in einem neuen ''Objektdatum'' zu deklarieren, verwenden Sie beim Erstellen des Datums dasselbe Datumsformat. 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
Schritt 3. Vergleichen Sie die Date-Objekte
Der folgende Code zeigt Ihnen Beispiele für jeden Fall – kleiner als, gleich und größer als.
date1.compareTo(date2); //date1 < date2, gibt einen Wert kleiner als 0 zurück date2.compareTo(date1); //date2 > date1, gibt einen Wert größer als 0 zurück date1.compareTo(date3); //date1 = date3, also wird 0 auf der Konsole ausgegeben
Methode 2 von 4: Verwenden von Equals, After und Before
Schritt 1. Verwenden Sie equals, after und before
Datumsangaben können mit den Methoden equals, after und before verglichen werden. Wenn zwei Datumsangaben den gleichen Zeitwert haben, gibt die equals-Methode true zurück. Im folgenden Beispiel wird das Date-Objekt verwendet, das in der CompareTo-Beispielmethode erstellt wurde.
Schritt 2. Vergleichen Sie mit der Vorher-Methode
Der folgende Code zeigt einen Beispielfall, der true und false zurückgibt. Wenn date1 ein Datum vor date2 ist, gibt die before-Methode true zurück. Andernfalls gibt die Methode vor false zurück.
System.out.print (date1.before(date2)); // den Wert ''true'' anzeigen System.out.print(date2.before(date2)); // den Wert ''false'' zurückgeben
Schritt 3. Vergleichen Sie mit der Nach-Methode
Der folgende Code zeigt einen Beispielfall, der true und false zurückgibt. Wenn date2 das Datum nach date1 ist, gibt die after-Methode true zurück. Andernfalls gibt die Methode after false zurück.
System.out.print(date2.after(date1)); // Anzeige des Wertes ''true'' System.out.print(date1.after(date2)); // Anzeige des Werts ''false''
Schritt 4. Vergleichen Sie mit der Equals-Methode
Der folgende Code zeigt einen Beispielfall, der true und false zurückgibt. Wenn beide Daten gleich sind, gibt die Methode equals true zurück. Andernfalls gibt die Methode equals false zurück.
System.out.print(date1.equals(date3)); // Anzeige des Wertes ''true'' System.out.print(date1.equals(date2)); // Anzeige des Werts ''false''
Methode 3 von 4: Verwenden des Klassenkalenders
Schritt 1. Verwenden Sie den Klassenkalender
Die Calendar-Klasse verfügt außerdem über die Methoden CompareTo, equals, after und before, die genauso funktionieren wie die zuvor für die Date-Klasse beschriebenen. Wenn die Datumsinformationen also in einem Klassenkalender gespeichert sind, müssen Sie das Datum nicht extrahieren, nur um einen Vergleich durchzuführen.
Schritt 2. Erstellen Sie eine Instanz von Calendar
Um Methoden im Klassenkalender zu verwenden, müssen Sie mehrere Kalenderinstanzen erstellen. Glücklicherweise können Sie die Werte einer zuvor erstellten Date-Instanz verwenden.
Kalender cal1 = Calendar.getInstance(); // cal1 deklarieren Kalender cal2 = Calendar.getInstance(); // cal2 deklarieren Kalender cal3 = Calendar.getInstance(); // cal3 deklarieren cal1.setTime (date1); // Setzen Sie das Datum in cal1 cal2.setTime (date2); cal3.setTime(Datum3);
Schritt 3. Vergleichen Sie cal1 und cal2 mit der Vorher-Methode
Der folgende Code gibt den Wert von tr. aus
System.out.print (cal1.before(cal2)); // gibt den Wert ''true'' zurück
Schritt 4. Vergleichen Sie cal1 und cal2 mit der after-Methode
Der folgende Code gibt false zurück, da cal1 das Datum vor cal2 ist.
System.out.print (cal1.after (cal2)); // den Wert ''false'' zurückgeben
Schritt 5. Vergleichen Sie cal1 und cal2 mit der equals-Methode
Der folgende Code zeigt einen Beispielfall, der true und false zurückgibt. Der Status hängt von der Kalenderinstanz ab, die verglichen wird. Der folgende Code gibt den Wert "true" zurück, dann "false" in der nächsten Zeile.
System.out.println(cal1.equals(cal3)); // den Wert ''true'' zurückgeben: cal1 == cal3 System.out.print(cal1.equals(cal2)); // den Wert ''false'' zurückgeben: cal1 != cal2
Methode 4 von 4: Verwenden von getTime
Schritt 1. Verwenden Sie getTime
Sie können auch die Zeiteinheitswerte von zwei Datumsangaben direkt vergleichen, obwohl die vorherigen beiden Methoden möglicherweise einfacher zu lesen und zu bevorzugen sind. Auf diese Weise vergleichen Sie 2 primitive Datentypen, sodass Sie die Operanden "", und "==" verwenden können.
Schritt 2. Erstellen Sie ein Zeitobjekt im Long-Zahlenformat
Bevor Sie Datumsangaben vergleichen können, müssen Sie einen Long-Integer-Wert aus dem zuvor erstellten Date-Objekt erstellen. Glücklicherweise erledigt dies die Methode getTime() für Sie.
lange Zeit1 = getTime(date1); // primitive time1 von date1 deklarieren long time2 = getTime (date2); // primitiven time2-Wert von date2 deklarieren
Schritt 3. Führen Sie einen Kleiner-als-Vergleich durch
Verwenden Sie den Operanden kleiner als (<), um diese beiden ganzzahligen Werte zu vergleichen. Da time1 kleiner als time2 ist, wird die erste Meldung angezeigt. Die else-Anweisung wird eingefügt, um die Syntax zu vervollständigen.
if(time1 < time2){ System.out.println("Datum1 ist das Datum vor Datum2"); // wird angezeigt, weil time1 < time2 } else{ System.out.println("date1 ist kein Datum vor date2"); }
Schritt 4. Führen Sie einen Größer-als-Vergleich durch
Verwenden Sie den Operanden Größer als (>), um diese beiden ganzzahligen Werte zu vergleichen. Da time1 größer als time2 ist, wird die erste Meldung angezeigt. Die else-Anweisung wird eingefügt, um die Syntax zu vervollständigen.
if(time2 > time1){ System.out.println("date2 ist das Datum nach date1"); // wird angezeigt, weil time2> time1} else{ System.out.println("date2 ist nicht das Datum nach date1"); }
Schritt 5. Führen Sie einen Gleichheitsvergleich durch
Verwenden Sie die Operandenfunktion, um die Gleichheit der Werte (==) zu überprüfen, um diese beiden Ganzzahlen zu vergleichen. Da time1 gleich time3 ist, erscheint die erste Meldung. Wenn der Programmablauf in die else-Anweisung eingeht, bedeutet dies, dass die beiden Zeiten nicht denselben Wert haben.
if(time1 == time2){ System.out.println("beide Daten sind gleich"); } else{ System.out.println("Der 1. ist nicht gleich dem 2."); // wird angezeigt, weil time1 != time2 }