Converta java.util.Date em Instant, OffsetDateTime ou ZonedDateTime de java.time
À medida que migramos para a estrutura java.time moderna , é essencial saber como converter objetos java.util.Date legados nos tipos java.time apropriados. Aqui está um resumo das equivalências:
java.util.Date to Instant
Ambos representam um momento no UTC, então a conversão é direta:
Instant instant = myUtilDate.toInstant();
java.util.Date myUtilDate = java.util.Date.from(instant);
java.util.Date para OffsetDateTime ou ZonedDateTime de java.time
Desde estes incorporam informações de fuso horário, é necessário extrair o fuso da data herdada:
// 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);
}
Mapeamentos de conversão adicionais
Tipo legado | java.time equivalente | Adicional Notas |
---|---|---|
java.util.Calendar | Instant | Converte para o início do dia em UTC |
java.util.GregorianCalendar | ZonedDateTime | Retém informações de fuso horário |
java.util .LocalDate | ZonedDateTime | Requer um fuso horário para determinar o data |
java.util.LocalTime | Instant | Converte para o início do dia em UTC |
java.util.LocalDateTime | ZonedDateTime | Requer um fuso horário para determinar a data e time |
Considerações importantes
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3