Convertir java.util.Date a Instant, OffsetDateTime o ZonedDateTime de java.time
A medida que migramos hacia el marco java.time moderno , es esencial saber cómo convertir objetos java.util.Date heredados en los tipos java.time apropiados. Aquí hay un resumen de las equivalencias:
java.util.Date to Instant
Ambos representan un momento en UTC, por lo que la conversión es sencilla:
Instant instant = myUtilDate.toInstant();
java.util.Date myUtilDate = java.util.Date.from(instant);
java.util.Date a OffsetDateTime o ZonedDateTime de java.time
Desde estos Los tipos incorporan información de zona horaria, por lo que es necesario extraer la zona de la fecha heredada:
// 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);
}
Asignaciones de conversión adicionales
Tipo heredado | equivalente a java.time | Adicional Notas |
---|---|---|
java.util.Calendar | Instantáneo | Convierte al inicio del día en UTC |
java.util.GregorianCalendar | ZonedDateTime | Retiene información de zona horaria |
java.util.LocalDate | ZonedDateTime | Requiere una zona horaria para determinar la fecha |
java.util.LocalTime | Instant | Convierte a el inicio del día en UTC |
java.util.LocalDateTime | ZonedDateTime | Requiere una zona horaria para determinar la fecha y la hora |
Consideraciones importantes
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3