Quelle est la bonne façon de convertir entre Java.sql.Date
et LocalDate
(Java8)?
La version de Java 8 (et ultérieure) de Java.sql.Date
Intègre le support pour LocalDate
, y compris toLocalDate
et valueOf(LocalDate)
.
Pour convertir de LocalDate
en Java.sql.Date
, Vous pouvez utiliser
Java.sql.Date.valueOf( localDate );
Et pour convertir de Java.sql.Date
En LocalDate
:
sqlDate.toLocalDate();
Fuseaux horaires:
Le type LocalDate
ne stocke aucune information de fuseau horaire, contrairement à Java.sql.Date
. Par conséquent, lors de l'utilisation des conversions ci-dessus, les résultats dépendent du fuseau horaire par défaut du système (comme indiqué dans les commentaires).
Si vous ne voulez pas vous fier au fuseau horaire par défaut, vous pouvez utiliser la conversion suivante:
Date now = new Date();
LocalDate current = now.toInstant()
.atZone(ZoneId.systemDefault()) // Specify the correct timezone
.toLocalDate();