Maison  >  Article  >  Java  >  Comment convertir entre java.time.LocalDateTime et java.util.Date ?

Comment convertir entre java.time.LocalDateTime et java.util.Date ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-13 02:53:02211parcourir

How to Convert Between java.time.LocalDateTime and java.util.Date?

Conversion entre java.time.LocalDateTime et java.util.Date

Avec l'introduction par Java 8 du package java.time, les développeurs ont adopté sa nouvelle API pour la gestion date et heure. Parmi ses classes, LocalDateTime contient une valeur de date avec heure indépendante du fuseau horaire.

Cependant, le code existant s'appuie souvent sur la classe java.util.Date. Lors de l'intégration d'anciennes et de nouvelles bases de code, la conversion entre ces deux classes devient nécessaire.

Approche de conversion :

De java.util.Date à LocalDateTime :

  1. Convertissez le java.util.Date en un Instant à l'aide de la méthode toInstant().
  2. Spécifiez un fuseau horaire à l'aide de ZoneId.systemDefault() pour créer un LocalDateTime via ofInstant( ).

Code :

Date in = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());

De LocalDateTime à java.util.Date :

  1. Utilisez atZone(ZoneId) pour convertir LocalDateTime en ZonedDateTime.
  2. Convertissez le ZonedDateTime en Instant à l'aide de toInstant(), puis en java.util.Date à l'aide de Date.from().

Code :

LocalDateTime ldt = ...
ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
Date output = Date.from(zdt.toInstant());

Remarque sur l'heure d'été (DST) :

Conversion de LocalDateTime en java.util .Date via ZonedDateTime peut introduire un comportement inattendu en raison de l'heure d'été. Certaines valeurs LocalDateTime peuvent ne pas exister ou apparaître deux fois lors des transitions DST. Reportez-vous au Javadoc pour atZone(ZoneId) pour plus de détails.

Considérations supplémentaires :

  • java.util.Date représente un instant sur la chronologie, tandis qu'Instant dans java.time.* représente un instant sans fuseau horaire.
  • La conversion entre LocalDateTime et java.util.Date peut entraîner des instants différents en raison de divergences dans les systèmes de calendrier (julien contre grégorien) avant 1582. .

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