"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo convierto java.util.Date a Instant, OffsetDateTime o ZonedDateTime de java.time?

¿Cómo convierto java.util.Date a Instant, OffsetDateTime o ZonedDateTime de java.time?

Publicado el 2024-11-06
Navegar:378

How do I convert java.util.Date to java.time\'s Instant, OffsetDateTime, or ZonedDateTime?

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 heredadoequivalente a java.timeAdicional Notas
java.util.CalendarInstantáneoConvierte al inicio del día en UTC
java.util.GregorianCalendarZonedDateTimeRetiene información de zona horaria
java.util.LocalDate ZonedDateTimeRequiere una zona horaria para determinar la fecha
java.util.LocalTimeInstantConvierte a el inicio del día en UTC
java.util.LocalDateTimeZonedDateTimeRequiere una zona horaria para determinar la fecha y la hora

Consideraciones importantes

  • La conversión de un tipo java.util.Date a un tipo java.time puede provocar una pérdida de precisión, ya que La resolución de nanosegundos no es compatible con las clases heredadas.
  • Al convertir a OffsetDateTime o ZonedDateTime, se debe conservar la información de la zona horaria para garantizar una interpretación correcta.
  • Se recomienda encarecidamente utilizar tipos java.time en código nuevo para mayor precisión y coherencia.
Último tutorial Más>

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