PDF herunterladen
PDF herunterladen
Es gibt verschiedene Arten für den Vergleich von Java-Daten. Intern wird ein Datum als ein Zeitpunkt (long) dargestellt - die Anzahl der Millisekunden, die seit dem 1. Januar 1970 vergangen sind. In Java ist ein Datum ein Objekt, was bedeutet, dass es mehrere Methoden für den Vergleich beinhaltet. Jede Methode für den Vergleich zweier Daten vergleicht im Wesentlichen die Zeiten der Daten.
Vorgehensweise
-
Verwende compareTo. Datum implementiert Comparable<date> und daher können die beiden Daten direkt mit der Methode compareTo verglichen werden. Wenn die Daten für den gleichen Zeitpunkt sind, gibt die Methode null zurück. Wenn das verglichene Datum vor dem date-Argument liegt, wird ein Wert kleiner als null zurückgegeben. Wenn das verglichene Datum nach dem date-Argument liegt, wird ein Wert größer als null zurückgegeben. Wenn die Daten gleich sind, wird der Wert null zurückgegeben. [1] X Forschungsquelle
-
Erstelle die Datumsobjekte. Du musst jedes Datumsobjekt erstellen, bevor du sie vergleichen kannst. Eine Möglichkeit hierfür ist die Nutzung der Klasse SimpleDateFormat. Sie ermöglicht eine einfache Eingabe von Datumswerten in Datumsobjekte.
SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-MM-dd" ); //Für die Deklaration von Werten in new date-Objekten. Verwende das gleiche Format beim Erstellen von Daten Date date1 = sdf . parse ( "1995-02-23" ); //date1 ist 23. Februar 1995 Date date2 = sdf . parse ( "2001-10-31" ); //date2 ist 31. Oktober 2001 Date date3 = sdf . parse ( "1995-02-23" ); //date3 ist 23. Februar 1995
-
Vergleiche die Datenobjekte. Der folgende Code zeigt dir alle Ergebnisse -- weniger als, gleich und grösser als.
date1 . compareTo ( date2 ); //date1 < date2, ergibt weniger als 0 date2 . compareTo ( date1 ); //date2 > date1, ergibt mehr als 0 date1 . compareTo ( date3 ); //date1 = date3, ergibt 0
Werbeanzeige
-
Verwende equals, after und before. Daten können mit den Methoden equals, after und before verglichen werden. Wenn zwei Daten für den gleichen Zeitpunkt sind, gibt die Methode equals true (wahr) zurück. Die Beispiele nutzen die zuvor erstellten Daten der Methode compareTo. [2] X Forschungsquelle
-
Vergleich mit der Methode before. Der Code unten zeigt einen true- und einen false-Fall. Wenn date1 vor date2 liegt, gibt before true zurück. Wenn nicht, gibt before false (falsch) zurück.
System . out . print ( date1 . before ( date2 )); //gibt true aus System . out . print ( date2 . before ( date2 )); //gibt false aus
-
Vergleiche mit der Methode after. Der Code unten zeigt einen true- und einen false-Fall. Wenn date2 nach date1 liegt, gibt after true zurück. Wenn nicht, gibt after false zurück.
System . out . print ( date2 . after ( date1 )); //gibt true aus System . out . print ( date1 . after ( date2 )); //gibt false aus
-
Vergleiche mit der Methode equals. Der Code unten zeigt einen true- und einen false-Fall. Wenn die Daten gleich sind, gibt equal true zurück. Wenn nicht, gibt equal false zurück.
System . out . print ( date1 . equals ( date3 )); //gibt true aus System . out . print ( date1 . equals ( date2 )); //gibt false aus
Werbeanzeige
-
Verwende den Kalender. Die Klasse calender verfügt ebenfalls über die Methoden compareTo, equals, after und before, die genauso funktionieren, wie oben für die Klasse date beschrieben. Wenn die Datumsinformationen also in einem Kalender stehen, müssen sie nicht extrahiert werden, nur um einen Vergleich durchzuführen. [3] X Forschungsquelle
-
Erstelle Instanzen von Calendar. Um die Calendar-Methoden zu nutzen, brauchst du ein paar Instanzen von Calendar. Glücklicherweise kannst du die Zeiten einfach aus den bereits erstellten Date-Instanzen holen.
Calendar cal1 = Calendar . getInstance (); //deklariert cal1 Calendar cal2 = Calendar . getInstance (); //deklariert cal2 Calendar cal3 = Calendar . getInstance (); //deklariert cal3 cal1 . setTime ( date1 ); //übergibt date an cal1 cal2 . setTime ( date2 ); cal3 . setTime ( date3 );
-
Vergleiche cal1 und cal2 mit before. Der Code unten sollte true ausgeben, da cal1 vor cal2 liegt.
System . out . print ( cal1 . before ( cal2 )); //gibt true aus
-
Vergleiche cal1 und cal2 mit after. Der Code unten sollte false ausgeben, da cal1 vor cal2 liegt.
System . out . print ( cal1 . after ( cal2 )); //gibt false aus
-
Vergleiche cal1 und cal2 mit equals. Der Code unten zeigt ein Beispiel eines true- und eines false-Falls. Die Bedingung hängt von den verglichenen Calender-Instanzen ab. Der Code sollte "true" und dann in der nächsten Zeile "false" ausgeben.
System . out . println ( cal1 . equals ( cal3 )); //gibt true aus: cal1 == cal3 System . out . print ( cal1 . equals ( cal2 )); //gibt false aus: cal1 != cal2
Werbeanzeige
-
Verwende getTime. Du kannst den Zeitpunkt von zwei Daten auch direkt vergleichen, auch wenn die vorherigen Herangehensweisen vermutlich besser lesbar und daher vorzuziehen sind. Dies ist ein Vergleich von zwei primitiven Datumstypen, er kann also mit "<", ">" und "==" durchgeführt werden.
-
Erstelle die long-Objekte. Bevor du die Daten vergleichen kannst, musst du long integers mit den Daten aus den zuvor erstellten date-Objekten erstellen. Glücklicherweise übernimmt die Methode getTime() den Großteil der Arbeit für dich.
long time1 = getTime ( date1 ); //deklariert primitive time1 aus date1 long time2 = getTime ( date2 ); //deklariert primitive time2 aus date2
-
Mache einen kleiner als Vergleich. Verwende das Kleiner-Zeichen (<), 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.
if ( time1 < time2 ){ System . out . println ( "date1 liegt vor date2" ); //wird ausgegeben, da time1 < time2 } else { System . out . println ( "date1 liegt nicht vor date2" ); }
-
Mache einen größer als Vergleich. Verwende das Größer-Zeichen (>), um diese beiden Integer-Werte zu vergleichen. Da time1 größer ist als time 2, sollte die erste Nachricht ausgegeben werden. Das else Statement wird wegen der richtigen Syntax angegeben.
if ( time2 > time1 ){ System . out . println ( "date2 liegt nach date1" ); //wird ausgegeben, da time2 > time1 } else { System . out . println ( "date2 liegt nicht nach date1" ); }
-
Mache einen gleich Vergleich. Verwende das Gleichheitszeichen (=), um diese beiden Integer-Werte auf Gleichheit zu vergleichen. Da time1 gleich time 3 ist, sollte die erste Nachricht ausgegeben werden. Wenn das Programm zum else Statement gelangt, bedeutet dies, dass die beiden Zeiten nicht gleich sind. [4] X Forschungsquelle
if ( time1 == time2 ){ System . out . println ( "die Daten sind gleich" ); } else { System . out . println ( "die Daten sind nicht gleich" ); //wird ausgegeben, da time1 != time2 }
Werbeanzeige
Referenzen
Werbeanzeige