Soustraire des dates en Java
-
Utilisez
java.util.Date
pour soustraire deux dates en Java -
Utilisez
java.time.Duration
etjava.time.Period
pour soustraire deux dates en Java -
Utilisez
java.time.temporal.ChronoUnit
pour soustraire deux dates en Java -
Utilisez
java.time.temporal.Temporal
until()
pour soustraire deux dates en Java
Cet article explique comment on peut soustraire deux dates ou obtenir la différence entre deux dates en Java.
Utilisez java.util.Date
pour soustraire deux dates en Java
La classe java.text.SimpleDateFormat
est utilisée pour formater et analyser les dates selon le modèle spécifié. Nous calculons la valeur absolue de la différence de temps entre les deux dates en millisecondes.
La méthode convert()
de la classe TimeUnit
accepte deux paramètres, qui sont la durée du temps et l’unité de la durée du temps. Nous créons un objet TimeUnit
et convertissons les millisecondes en jours en utilisant la méthode convert()
.
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH);
Date firstDate = sdf.parse("04/22/2020");
Date secondDate = sdf.parse("04/27/2020");
long diff = secondDate.getTime() - firstDate.getTime();
TimeUnit time = TimeUnit.DAYS;
long diffrence = time.convert(diff, TimeUnit.MILLISECONDS);
System.out.println("The difference in days is : " + diffrence);
}
}
Production :
The difference in days is : 5
Utilisez java.time.Duration
et java.time.Period
pour soustraire deux dates en Java
La classe Duration
mesure une quantité de temps en secondes et nanosecondes, tandis que la classe Period
mesure le temps en années, mois et jours. La méthode atStartofDay()
ajoute l’heure de minuit à la date locale.
Nous obtenons l’objet Period
comme différence entre deux dates, tandis que nous obtenons la différence entre deux instants comme objet Duration
en utilisant la méthode between()
. La méthode Duration
est préférée pour les périodes plus courtes.
La durée diff
est convertie en jours en utilisant toDays()
. De même, nous pouvons obtenir les unités de date de Period
en utilisant getYears()
, getMonths
et getDays()
.
import java.time.Duration;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) throws Exception {
LocalDate d1 = LocalDate.parse("2020-05-06", DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate d2 = LocalDate.parse("2020-05-30", DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate d3 = LocalDate.parse("2018-05-06", DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate d4 = LocalDate.parse("2020-01-23", DateTimeFormatter.ISO_LOCAL_DATE);
Duration diff = Duration.between(d1.atStartOfDay(), d2.atStartOfDay());
Period period = Period.between(d3, d4);
long diffDays = diff.toDays();
int years = Math.abs(period.getYears());
int months = Math.abs(period.getMonths());
int days = Math.abs(period.getDays());
System.out.println("Diffrence between dates is : " + diffDays + "days");
System.out.println(
"Diffrence is : " + years + " year, " + months + " months, " + days + " days");
}
}
Production :
Diffrence between dates is : 24days
Diffrence is : 1 year, 8 months, 17 days
Utilisez java.time.temporal.ChronoUnit
pour soustraire deux dates en Java
En Java 8, l’API Time
représente une unité de date-heure utilisant l’interface TemporalUnit
. Chaque unité fournit une implémentation de la méthode nommée between()
. Cette méthode calcule le temps entre deux objets temporels.
ChronoUnit
est l’ensemble standard d’unités de date-heure qui fournit un accès basé sur les unités pour manipuler une date, une heure ou une date-heure.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) throws Exception {
LocalDate dBefore = LocalDate.parse("2018-05-06", DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate dAfter = LocalDate.parse("2018-05-30", DateTimeFormatter.ISO_LOCAL_DATE);
long diff = ChronoUnit.DAYS.between(dBefore, dAfter);
System.out.println("difference is : " + diff);
}
}
Production :
difference is : 24
Utilisez java.time.temporal.Temporal
until()
pour soustraire deux dates en Java
La méthode until()
calcule le temps jusqu’à un autre temporel en fonction de l’unité spécifiée. Le résultat sera négatif si la fin est avant le début.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.Temporal;
public class Main {
public static void main(String[] args) throws Exception {
LocalDate dBefore = LocalDate.parse("2018-05-21", DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate dAfter = LocalDate.parse("2018-05-30", DateTimeFormatter.ISO_LOCAL_DATE);
long diff = dBefore.until(dAfter, ChronoUnit.DAYS);
System.out.println("difference is : " + diff + " days");
}
}
Production :
difference is : 9 days
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn