在 Java 8(或更高版本)中java.sql.Date
和(双向)之间转换的正确方法是什么?LocalDate
问问题
96505 次
1 回答
147
Java 8 版本(及更高版本)java.sql.Date
已内置支持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();
于 2015-04-20T15:05:42.137 回答