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
0
si l’argument date est égal à l’objetDate
. - Il retourne une valeur positive si l’objet
Date
est postérieur à la date de l’argument - Il retourne un négatif si l’objet
Date
est 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