Conversion de java.util.Date en types java.time
Problème : Conversion entre java.util.Date ou les objets java.util.Calendar et les types de framework java.time peuvent prêter à confusion. Comprendre les types et leurs mappages est crucial.
Solution :
Java 8 a introduit le framework java.time, proposant plusieurs types pour manipuler la date et l'heure. Le type java.time approprié pour correspondre à une instance java.util.Date est déterminé par la précision et le fuseau horaire requis.
Types et conversions :
- Instant : Représente un instant en UTC, similaire à java.util.Date. Utilisez Instant.ofEpochMilli(myUtilDate.getTime()) pour convertir.
-
OffsetDateTime : Une heure d'horloge murale avec un décalage par rapport à UTC. Appliquez un décalage à un Instant pour créer un OffsetDateTime. Utilisez OffsetDateTime.ofInstant(instant, ZoneOffset).
-
ZonedDateTime : Une heure d'horloge murale avec un fuseau horaire spécifique. Appliquez un ZoneId à un Instant pour créer un ZonedDateTime. Utilisez ZonedDateTime.ofInstant(instant, ZoneId).
-
LocalDate : Une date sans heure ni fuseau horaire. Obtenez un LocalDate en passant par un ZonedDateTime : ZonedDateTime.toLocalDate().
-
LocalTime : Une heure de la journée sans date ni fuseau horaire. De même, obtenez un LocalTime à partir d'un ZonedDateTime : ZonedDateTime.toLocalTime().
-
LocalDateTime : Une combinaison de date et d'heure sans fuseau horaire. Notez que cela peut être rarement utilisé, car il représente un moment non spécifique. Utilisez ZonedDateTime.toLocalDateTime().
Pièges de conversion :
- Lors de la conversion de java.time en java.util , la précision peut être perdue (nanosecondes tronquées en millisecondes).
- Lors de la conversion de java.util.Date en LocalDate ou LocalDateTime, un fuseau horaire est requis pour déterminer la date ou l'heure.
Conclusion :
Comprendre le mappage entre les types java.util.Date ou java.util.Calendar et java.time est essentiel pour une interopération transparente. Java.time offre une gestion date-heure robuste et précise, et la conversion entre l'ancien et le nouveau framework est prise en charge via des méthodes pratiques.
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!