Comment comparer deux dates en Java
-
La méthode
before()pour comparer deux dates en Java -
méthode
after()pour comparer deux dates en Java -
méthode
equals()pour comparer deux dates en Java -
méthode
compareTo()pour comparer deux dates en Java
Dans ce tutoriel, nous apprendrons les multiples méthodes pour comparer des dates en Java. Pour obtenir les résultats souhaités, nous avons besoin de méthodes spécifiées, c’est-à-dire, before(), after(), equals() et comparerTo().
La méthode before() pour comparer deux dates en Java
La première méthode est la méthode before() dans la classe Java Date qui effectue la comparaison de l’objet Date et de l’instant Date donné. Elle retourne true lorsque l’objet Date est antérieur à l’objet Date donné.
Considérons le code suivant:
// 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) {
}
}
}
Production:
Date-1: 2019-09-16
Date-2: 2020-01-25
Date-1 is before Date-2
méthode after() pour comparer deux dates en Java
Une autre approche pour réaliser cette comparaison est d’utiliser la méthode after() dans la classe Java Date. Cette méthode est opposée à la méthode before ci-dessus et retourne true lorsque l’objet Date est postérieur à l’objet Date donné.
Considérons le code suivant:
// 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) {
}
}
}
Production:
Date-1: 2020-01-25
Date-2: 2019-09-16
Date-1 is after Date-2
méthode equals() pour comparer deux dates en Java
Une autre approche consiste à utiliser la méthode equals() dans la classe Java Date. Elle compare deux dates et retourne true si elles sont égales.
Considérons le code suivant:
// 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) {
}
}
}
Production:
Date - 1 : 2020 - 01 - 25 Date - 2 : 2020 - 01 - 25 Date - 1 is same as Date - 2
méthode compareTo() pour comparer deux dates en Java
La dernière approche est la méthode compareTo() dans la classe Java Date. Elle compare deux dates et retourne des valeurs différentes en fonction du résultat de la comparaison.
- Elle retourne
0si l’argument date est égal à l’objetDate. - Il retourne une valeur positive si l’objet
Dateest postérieur à la date de l’argument - Il retourne un négatif si l’objet
Dateest antérieur à la date de l’argument
Considérez le code suivant:
// 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) {
}
}
}
Production:
Date-1: 2020-01-25
Date-2: 2020-01-23
Date-1 is after Date-2