Maison >Java >javaDidacticiel >Comment convertir efficacement java.util.Date en java.time.LocalDate ?

Comment convertir efficacement java.util.Date en java.time.LocalDate ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-07 01:18:19761parcourir

How to Efficiently Convert java.util.Date to java.time.LocalDate?

Conversion de java.util.Date en java.time.LocalDate

Problème :

Comment convertir efficacement un objet java.util.Date au nouveau format java.time.LocalDate introduit dans le JDK 8/JSR-310 ?

Réponse courte :

Pour réaliser la conversion, utilisez le code suivant :

Date input = new Date();
LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

Java 9 Solution :

Une alternative plus efficace a été ajoutée dans Java SE 9 :

Date input = new Date();
LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());

Explication :

Contrairement à son nom l'indique, un objet java.util.Date désigne un instant dans le temps, plutôt qu'une date spécifique. Pour convertir un java.util.Date en un java.time.LocalDate compatible, les étapes suivantes sont nécessaires :

  1. Utilisez la méthode toInstant() pour obtenir un objet Instant représentant le même instant dans le temps que l'objet Date.
  2. Appliquez un fuseau horaire spécifique à l'objet Instant à l'aide de la méthode atZone(). Le fuseau horaire du système par défaut (ZoneId.systemDefault()) peut être utilisé ou un fuseau horaire personnalisé.
  3. Extrayez l'objet LocalDate de l'objet ZonedDateTime résultant à l'aide de toLocalDate().

Ce processus de conversion tient compte du fait qu'un java.util.Date ne contient pas d'informations sur le fuseau horaire. La spécification du fuseau horaire permet la conversion précise en une date locale spécifique.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn