Wie man zwei Daten in Java vergleicht

Asad Riaz 12 Oktober 2023
  1. before() Methode zum Vergleich zweier Daten in Java
  2. after() Methode zum Vergleich zweier Datumsangaben in Java
  3. equals() Methode zum Vergleich zweier Datumsangaben in Java
  4. compareTo() Methode, um zwei Daten in Java zu vergleichen
Wie man zwei Daten in Java vergleicht

In diesem Tutorial lernen wir mehrere Methoden zum Vergleich von Datumsangaben in Java. Um erwünschte Ergebnisse zu erzielen, benötigen wir bestimmte Methoden, d.h. before(), after(), equals() und compareTo().

before() Methode zum Vergleich zweier Daten in Java

Die erste Methode ist die before() Methode in der Java Date Klasse, die einen Vergleich zwischen dem Date Objekt und dem gegebenen Date Zeitpunkt durchführt. Sie gibt “wahr” zurück, wenn das Date-Objekt früher kommt als das angegebene Date-Objekt.

Betrachten Sie den folgenden Code:

// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
      Date date1 = dateFormat.parse("2019-09-16");
      Date date2 = dateFormat.parse("2020-01-25");
      System.out.println("Date-1: " + dateFormat.format(date1));
      System.out.println("Date-2: " + dateFormat.format(date2));
      if (date1.before(date2)) {
        System.out.println("Date-1 is before Date-2");
      }
    } catch (ParseException ex) {
    }
  }
}

Ausgabe:

Date-1: 2019-09-16
Date-2: 2020-01-25
Date-1 is before Date-2

after() Methode zum Vergleich zweier Datumsangaben in Java

Ein anderer Ansatz, um diesen Vergleich zu erreichen, ist die Verwendung der after()-Methode in der Java-Klasse Date. Diese Methode ist der obigen before-Methode entgegengesetzt und gibt true zurück, wenn das Date-Objekt später kommt als das angegebene Date-Objekt.

Betrachten Sie den folgenden Code:

// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd");
      Date date1 = sdformat.parse("2020-01-25");
      Date date2 = sdformat.parse("2019-09-16");
      System.out.println("Date-1: " + sdformat.format(date1));
      System.out.println("Date-2: " + sdformat.format(date2));
      if (date1.after(date2)) {
        System.out.println("Date-1 is after Date-2");
      }
    } catch (ParseException ex) {
    }
  }
}

Ausgabe:

Date-1: 2020-01-25
Date-2: 2019-09-16
Date-1 is after Date-2

equals() Methode zum Vergleich zweier Datumsangaben in Java

Ein anderer Ansatz ist die Verwendung der Methode equals() in der Java-Klasse Date. Sie vergleicht zwei Datumsangaben und gibt true zurück, wenn sie gleich sind.

Betrachten Sie den folgenden Code:

// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-dd-mm");
      Date date1 = sdformat.parse("2020-01-25");
      Date date2 = sdformat.parse("2020-01-25");
      System.out.println("Date-1: " + sdformat.format(date1));
      System.out.println("Date-2: " + sdformat.format(date2));
      if (date1.equals(date2)) {
        System.out.println("Date-1 is same as Date-2");
      }
    } catch (ParseException ex) {
    }
  }
}

Ausgabe:

Date-1: 2020-01-25
Date-2: 2020-01-25
Date-1 is same as Date-2

compareTo() Methode, um zwei Daten in Java zu vergleichen

Der letzte Ansatz ist die Methode compareTo() in der Java Klasse Date. Sie vergleicht zwei Datumsangaben und gibt auf der Grundlage des Vergleichsergebnisses unterschiedliche Werte zurück.

  • Sie gibt 0 zurück, wenn das Argument date gleich dem Date-Objekt ist.
  • Es gibt einen positiven Wert zurück, wenn das Date-Objekt nach dem Argument date liegt.
  • Es gibt ein negatives Ergebnis zurück, wenn das Date-Objekt vor dem Argument date liegt.

Beachten Sie den folgenden Code:

// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd");
      Date date1 = sdformat.parse("2020-01-25");
      Date date2 = sdformat.parse("2020-01-23");
      System.out.println("Date-1: " + sdformat.format(date1));
      System.out.println("Date-2: " + sdformat.format(date2));
      if (date1.compareTo(date2) > 0) {
        System.out.println("Date-1 is after Date-2");
      } else if (date1.compareTo(date2) < 0) {
        System.out.println("Date-1 is before Date-2");
      } else if (date1.compareTo(date2) == 0) {
        System.out.println("Date-1 is same as Date-2");
      }
    } catch (ParseException ex) {
    }
  }
}

Ausgabe:

Date-1: 2020-01-25
Date-2: 2020-01-23
Date-1 is after Date-2

Verwandter Artikel - Java DateTime