PDF download PDF herunterladen PDF download 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.

Methode 1
Methode 1 von 4:

Mit compareTo

PDF download PDF herunterladen
  1. 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]
  2. 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 
      
  3. 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
Methode 2
Methode 2 von 4:

Mit Equals, After und Before

PDF download PDF herunterladen
  1. 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]
  2. 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 
      
  3. 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 
      
  4. 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
Methode 3
Methode 3 von 4:

Mit der Klasse Calendar

PDF download PDF herunterladen
  1. 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]
  2. 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 
       ); 
      
  3. Der Code unten sollte true ausgeben, da cal1 vor cal2 liegt.
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       before 
       ( 
       cal2 
       )); 
       //gibt true aus 
      
  4. Der Code unten sollte false ausgeben, da cal1 vor cal2 liegt.
       System 
       . 
       out 
       . 
       print 
       ( 
       cal1 
       . 
       after 
       ( 
       cal2 
       )); 
       //gibt false aus 
      
  5. 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
Methode 4
Methode 4 von 4:

Mit getTime

PDF download PDF herunterladen
  1. 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.
  2. 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 
      
  3. 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" 
       ); 
       } 
      
  4. 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" 
       ); 
       } 
      
  5. 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]
       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

Über dieses wikiHow

Diese Seite wurde bisher 18.897 mal abgerufen.

War dieser Artikel hilfreich?

Werbeanzeige