在java.sql.Date
和LocalDate
(Java8)之间进行转换的正确方法是什么?
答案 0 :(得分:90)
java.sql.Date
的Java 8版本(及更高版本)内置了对LocalDate
的支持,包括toLocalDate
和valueOf(LocalDate)
。
要从LocalDate
转换为java.sql.Date
,您可以使用
java.sql.Date.valueOf( localDate );
要从java.sql.Date
转换为LocalDate
:
sqlDate.toLocalDate();
时区:
LocalDate
类型不存储时区信息,而java.sql.Date
则存储时区信息。因此,使用上述转换时,结果取决于系统的默认时区(如注释中所述)。
如果您不想依赖默认时区,可以使用以下转换:
Date now = new Date();
LocalDate current = now.toInstant()
.atZone(ZoneId.systemDefault()) // Specify the correct timezone
.toLocalDate();