Confronta due date in Java

Asad Riaz 12 ottobre 2023
  1. Metodo before() per confrontare due date in Java
  2. Metodo after() per confrontare due date in Java
  3. Metodo equals() per confrontare due date in Java
  4. Metodo compareTo() per confrontare due date in Java
Confronta due date in Java

In questo tutorial impareremo diversi metodi per confrontare le date in Java. Per ottenere risultati desiderabili, abbiamo bisogno di metodi per esempio, before(), after(), equals() e compareTo().

Metodo before() per confrontare due date in Java

Il primo metodo è il metodo before() nella classe Java Date che esegue il confronto tra l’oggetto Date e l’istante Date dato. Restituisce true quando l’oggetto Date è precedente all’oggetto Date specificato.

Codici di esempio:

// 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) {
    }
  }
}

Produzione:

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

Metodo after() per confrontare due date in Java

Un altro approccio per ottenere questo confronto è usare il metodo after() nella classe Date di Java. Questo metodo è opposto al precedente metodo before e restituisce true quando l’oggetto Date è successivo all’oggetto Date specificato.

Codici di esempio:

// 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) {
    }
  }
}

Produzione:

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

Metodo equals() per confrontare due date in Java

Un altro approccio consiste nell’usare il metodo equals() nella classe Date di Java. Confronta due date e restituisce true se sono uguali.

Codici di esempio:

// 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) {
    }
  }
}

Produzione:

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

Metodo compareTo() per confrontare due date in Java

L’ultimo approccio è il metodo compareTo() nella classe Date di Java. Confronta due date e restituisce valori diversi in base al risultato del confronto.

  • Restituisce 0 se l’argomento data è uguale a un oggetto Date
  • Restituisce un valore positivo se un oggetto Date è dopo l’argomento date
  • Restituisce un valore negativo se un oggetto Date è precedente alla data dell’argomento

Codici di esempio:

// 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) {
    }
  }
}

Produzione:

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

Articolo correlato - Java DateTime