Maison >Java >javaDidacticiel >Comment calculer avec précision la différence de temps entre deux objets LocalDateTime en Java ?
Calcul du décalage horaire entre les objets LocalDateTime
Pour répondre à votre préoccupation, le calcul du décalage horaire entre deux objets LocalDateTime nécessite une approche globale qui peut avec précision représentent l'intervalle de temps en plusieurs unités.
L'API Java 8 fournit les classes Période et Durée pour gérer cela efficacement. La période représente un intervalle de temps en termes d'années, de mois et de jours, tandis que la durée concerne les heures, les minutes et les secondes.
Votre code existant utilise la période et la durée pour déterminer le décalage horaire, mais il y a une légère modification. requis. Voici le code mis à jour :
import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.Period; import java.time.ZoneId; public class Main { static final int MINUTES_PER_HOUR = 60; static final int SECONDS_PER_MINUTE = 60; static final int SECONDS_PER_HOUR = SECONDS_PER_MINUTE * MINUTES_PER_HOUR; public static void main(String[] args) { LocalDateTime toDateTime = LocalDateTime.of(2014, 9, 9, 19, 46, 45); LocalDateTime fromDateTime = LocalDateTime.of(1984, 12, 16, 7, 45, 55); Period period = Period.between(fromDateTime, toDateTime); long seconds = Duration.between(fromDateTime, toDateTime).getSeconds(); long hours = seconds / SECONDS_PER_HOUR; long minutes = ((seconds % SECONDS_PER_HOUR) / SECONDS_PER_MINUTE); long secs = (seconds % SECONDS_PER_MINUTE); System.out.println(period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days " + hours + " hours " + minutes + " minutes " + secs + " seconds."); } }
Le changement clé ici consiste à utiliser Duration.between(fromDateTime, toDateTime).getSeconds(); pour calculer la différence des secondes. Cela garantit la précision lorsqu'il s'agit de périodes dépassant minuit ou ayant des valeurs négatives.
Lorsque des nombres négatifs sont impliqués, Duration les gère correctement, fournissant le décalage horaire sous forme de valeur négative. De plus, utiliser ChronoUnit pour des conversions d'unités spécifiques est une approche fiable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!