Vergleichen Sie Daten in Java

Autor: Roger Morrison
Erstelldatum: 24 September 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
Zeichenketten - Java Tutorial 13
Video: Zeichenketten - Java Tutorial 13

Inhalt

Es gibt verschiedene Möglichkeiten, Daten in Java zu vergleichen. Intern wird ein Datum als (langer) Zeitpunkt dargestellt - die Anzahl der Millisekunden, die seit dem 1. Januar 1970 vergangen sind. In Java ist Datum das Datumsobjekt, was bedeutet, dass es mehrere Methoden zum Vergleichen von Datumsangaben enthält. Bei jeder Methode zum Vergleichen zweier Daten wird grundsätzlich die verstrichene Zeit beider Daten verglichen.

Schreiten

Methode 1 von 4: Verwenden des Befehls "compareTo"

  1. Verwenden Sie compareTo. Datum implementiert ComparableDate>, sodass zwei Daten mithilfe der compareTo-Methode direkt miteinander verglichen werden können. Wenn die Daten denselben Zeitpunkt angeben, gibt die Methode Null zurück. Wenn das zu vergleichende Datum vor dem Datumsargument liegt, wird ein negativer Wert zurückgegeben. Wenn das zu vergleichende Datum ein späteres Datum als das des Datumsarguments ist, wird ein positiver Wert zurückgegeben. Wenn die Daten gleich sind, wird eine Null zurückgegeben.
  2. Erstellen Sie die Datumsobjekte. Sie müssen jedes Datumsobjekt erstellen, bevor Sie mit dem Vergleich beginnen können. Eine Möglichkeit, dies zu tun, besteht darin, die SimpleDateFormat-Klasse anzuwenden. Auf diese Weise können Sie Datumsangaben einfach in Datumsobjekte eingeben.

      SimpleDateFormat sdf = neues SimpleDateFormat ("JJJJ-MM-TT"); // Zum Deklarieren von Werten in neuen Datumsobjekten.Verwenden Sie beim Erstellen von Datumsangaben dasselbe Datumsformat. Datum date1 = sdf.parse ("1995-02-23"); // Datum1 ist der 23. Februar 1995 Datum Datum2 = sdf.parse ("2001-10-31"); // Datum2 ist der 31. Oktober 2001 Datum Datum3 = sdf.parse ("1995-02-23"); // Datum3 ist der 23. Februar 1995

  3. Vergleichen Sie die Datumsobjekte. Das Folgende zeigt jeden Fall - kleiner als, gleich und größer als.

      date1.compareTo (date2); // date1 date2, kleiner als 0 date2.compareTo (date1); // date2> date1, gibt mehr als 0 zurück date1.compareTo (date3); // date1 = date3, gibt 0 zurück

Methode 2 von 4: Mit den Methoden "gleich, nach und vor"

  1. Verwenden Sie gleich nach und vor. Daten können mit den Methoden equals, after und before miteinander verglichen werden. Wenn zwei Daten dieselbe Zeit anzeigen, gibt die Methode equals "true" zurück. In den Beispielen werden die zuvor erstellten Daten über die compareTo-Methode verwendet.
  2. Vergleichen Sie mit der Vorher-Methode. Der folgende Code zeigt einen Fall von wahr und falsch. Wenn Datum1 vor Datum2 liegt, ist das Ergebnis wahr. Wenn nicht, gibt before false zurück.

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

  3. Vergleichen Sie dies mit der after-Methode. Der folgende Code zeigt einen Fall von wahr und falsch. Wenn date2 nach date1 liegt, gibt after true zurück. Wenn nicht, gibt after false zurück.

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

  4. Vergleichen Sie mit der Methode equals. Der folgende Code zeigt einen Fall von wahr und falsch. Wenn die Daten gleich sind, gibt equals true zurück. Wenn nicht, gibt equals false zurück.

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

Methode 3 von 4: Verwenden der Calendar-Klasse

  1. Verwenden Sie die Calendar-Klasse. Die Calendar-Klasse verfügt auch über die Methoden compareTo, equals, after und before, die auf die gleiche Weise wie oben für die Datumsklasse beschrieben funktionieren. Wenn die Datumsdaten in einem Kalender gespeichert sind, müssen Sie kein "Datum" extrahieren, sondern nur zwei Daten vergleichen.
  2. Erstellen Sie eine Instanz des Kalenders. Um die Kalendermethoden verwenden zu können, benötigen Sie einige Kalenderinstanzen. Glücklicherweise können Sie die von den Datumsinstanzen generierte Zeit verwenden.

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

  3. Vergleichen Sie cal1 und cal2 mit vor. Der folgende Code gibt true zurück, da cal1 früher als cal2 ist.

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

  4. Vergleichen Sie cal1 und cal2 mit after. Der folgende Code gibt false zurück, da cal1 früher als cal2 ist.

      System.out.print (cal1.after (cal2)); // print false

  5. Vergleichen Sie cal1 und cal2 mit equals. Der folgende Code zeigt ein Beispiel für wahr und falsch. Die Bedingung hängt von den verglichenen Kalenderinstanzen ab. Der folgende Code gibt "true" und dann "false" in der nächsten Zeile zurück.

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

Methode 4 von 4: Verwenden der "getTime" -Methode

  1. Verwenden Sie getTime. Es ist auch möglich, zwei Zeitpunkte direkt zu vergleichen, obwohl jeder der vorstehenden Ansätze wahrscheinlich besser lesbare Ergebnisse liefert und daher bevorzugt wird. Dies ist ein Vergleich zweier primitiver Datentypen, der mit "", ">" und "==" durchgeführt werden kann.
  2. Erstellen Sie die "langen" Zeitobjekte. Bevor Sie Datumsangaben vergleichen können, müssen Sie lange Ganzzahlen aus den Daten der zuvor erstellten Datumsobjekte erstellen. Glücklicherweise erledigt die Methode getTime () den größten Teil der Arbeit für Sie.

      lange Zeit1 = getTime (Datum1); // deklariert primitive Zeit1 von Datum1 lange Zeit2 = getTime (Datum2); // deklariert die primitive Zeit2 von Datum2

  3. Verwenden Sie eine "kleiner als" -Gleichung. Verwenden Sie ein "kleiner als" -Symbol (), um diese beiden ganzzahligen Werte zu vergleichen. Da Zeit1 kleiner als Zeit2 ist, sollte die erste Nachricht auf dem Bildschirm gedruckt werden. Die else-Anweisung ist für die korrekte Syntax enthalten.

      if (time1 time2) {System.out.println ("date1 ist früher als date2"); // drucke weil time1 time2} else {System.out.println ("date1 ist später als oder gleich date2"); }}

  4. Führen Sie einen Vergleich "größer als" durch. Verwenden Sie das Symbol "größer als" (>), um diese beiden Ganzzahlen zu vergleichen. Da Zeit1 größer als Zeit2 ist, wird die erste Nachricht auf dem Bildschirm gedruckt. Die else-Anweisung ist für die korrekte Syntax enthalten.

      if (time2> time1) {System.out.println ("date2 kommt nach date1"); // drucke weil time2> time1} else {System.out.println ("date2 ist früher als oder gleich date1"); }}

  5. Führen Sie einen "gleich" -Vergleich durch. Verwenden Sie das Symbol (==), um diese beiden Ganzzahlen zu vergleichen. Da Zeit1 gleich Zeit3 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"); // drucke weil time1! = time2}