Quiero convertir java.time.LocalDate
en java.util.Date
tipo. Porque quiero establecer la fecha en JDateChooser
. ¿O hay algún selector de fecha que admita java.time
fechas?
372
Quiero convertir java.time.LocalDate
en java.util.Date
tipo. Porque quiero establecer la fecha en JDateChooser
. ¿O hay algún selector de fecha que admita java.time
fechas?
Respuestas:
Eso supone que su selector de fecha utiliza la zona horaria predeterminada del sistema para transformar las fechas en cadenas.
fuente
atStartOfDay()
, ya que cambia el valor de la fecha, según tengo entendido?Aquí hay una clase de utilidad que uso para convertir las
java.time
clases más nuevas enjava.util.Date
objetos y viceversa:Editado en base al comentario de @Oliv.
fuente
ZoneId.systemDefault()
problemático porque las zonas horarias cambian a lo largo del año. Entonces, si el 01-enero estoy en la zona horaria -05: 00 (central), pero luego el 01-julio estoy en la zona horaria -06: 00 (luz del día central), ¿eso no causará resultados inexactos debido al horario de verano? ¿hora?Puedes usar el
java.sql.Date.valueOf()
método como:No es necesario agregar información de hora y zona horaria aquí porque se toman implícitamente.
Ver LocalDate a java.util.Date y viceversa, ¿la conversión más simple?
fuente
java.sql.Date
está destinado a la capa de base de datos, JDBC, JPA. La capa web (o cualquier aplicación cliente) debe estar absolutamente libre de cualquier dependencia dejava.sql.*
.java.sql.Date
es solojava.util.Date
con su tiempo establecido,00:00:00
pero el punto en la perspectiva del diseño es quejava.sql.*
no está destinado a una capa frontal con la que los clientes interactúan como Servlets / JSP.java.util.Date
en el lado de Java y /java.sql.Timestamp
o lo que sea aplicable desde eljava.sql.*
lado de JDBC .java.sql.*
clases serán una dependencia separada.java.time tiene la interfaz Temporal que puede usar para crear objetos instantáneos de la mayoría de las clases de tiempo. Instant representa milisegundos en la línea de tiempo en la Época, la referencia base para todas las demás fechas y horas.
Necesitamos convertir la fecha en un ZonedDateTime, con una hora y una zona, para hacer la conversión:
fuente
Para crear un java.util.Date a partir de un java.time.LocalDate , debe
El código podría tener el siguiente aspecto:
fuente
toEpochSecond
se hereda dejava.time.chrono.ChronoZonedDateTime
. Ver docs.oracle.com/javase/8/docs/api/java/time/chrono/…Esto funciona para mi:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#toString--
fuente
Solución Kotlin:
1) Pegue esta función de extensión en alguna parte.
2) Úselo y nunca vuelva a googlear esto.
fuente
fuente
Simple
fuente
fuente