在LocalDate和sql.Date之间转换

时间:2015-04-20 14:36:46

标签: java date java-8 converter java-time

java.sql.DateLocalDate(Java8)之间进行转换的正确方法是什么?

1 个答案:

答案 0 :(得分:90)

java.sql.Date的Java 8版本(及更高版本)内置了对LocalDate的支持,包括toLocalDatevalueOf(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();
相关问题