java - example - Convertir entre LocalDate y sql.Date
localdatetime java (1)
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo convertir LocalDate a SQL Date Java? 3 respuestas
¿Cuál es la forma correcta de convertir entre
java.sql.Date
y
LocalDate
(Java8)?
La versión Java 8 (y posterior) de
java.sql.Date
ha incorporado soporte para
LocalDate
, incluyendo
toLocalDate
y
valueOf(LocalDate)
.
Para convertir de
LocalDate
a
java.sql.Date
, puede usar
java.sql.Date.valueOf( localDate );
Y para convertir de
java.sql.Date
a
LocalDate
:
sqlDate.toLocalDate();
Zonas horarias:
El tipo
LocalDate
no almacena información de zona horaria, mientras que
java.sql.Date
sí.
Por lo tanto, cuando se utilizan las conversiones anteriores, los resultados dependen de la zona horaria predeterminada del sistema (como se señala en los comentarios).
Si no desea confiar en la zona horaria predeterminada, puede usar la siguiente conversión:
Date now = new Date();
LocalDate current = now.toInstant()
.atZone(ZoneId.systemDefault()) // Specify the correct timezone
.toLocalDate();