Convertir java.util.Date en Instant, OffsetDateTime ou ZonedDateTime de java.time
Alors que nous migrons vers le framework java.time moderne , il est essentiel de savoir comment convertir les objets java.util.Date hérités en types java.time appropriés. Voici un aperçu des équivalences :
java.util.Date to Instant
Les deux représentent un moment en UTC, la conversion est donc simple :
Instant instant = myUtilDate.toInstant();
java.util.Date myUtilDate = java.util.Date.from(instant);
java.util.Date vers OffsetDateTime ou ZonedDateTime de java.time
Depuis ces les types intègrent des informations de fuseau horaire, l'extraction du fuseau de la date héritée est nécessaire :
// If the legacy date is a GregorianCalendar (which can hold time zone info)
if (myUtilCalendar instanceof GregorianCalendar) {
GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar;
ZonedDateTime zdt = gregCal.toZonedDateTime(); // ZonedDateTime with time zone
java.util.Calendar myUtilCalendar = java.util.GregorianCalendar.from(zdt);
}
Mappages de conversion supplémentaires
Type d'héritage | équivalent java.time | Supplémentaire Notes |
---|---|---|
java.util.Calendar | Instant | Convertit en début de journée en UTC |
java.util.GregorianCalendar | ZonedDateTime | Conserve les informations de fuseau horaire |
java.util.LocalDate | ZonedDateTime | Nécessite un fuseau horaire pour déterminer la date |
java.util.LocalTime | Instant | Convertit en le début de la journée en UTC |
java.util.LocalDateTime | ZonedDateTime | Nécessite un fuseau horaire pour déterminer la date et l'heure |
Considérations importantes
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3