在 Java 8(或更高版本)中,java.sql.Date
和 LocalDate
(双向)之间转换的正确方法是什么?
最佳答案
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();
关于java - 在 LocalDate 和 sql.Date 之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750861/