使用哪个时区是java.sql.Date toLocalDate

Lar*_*ohl 3 java sqldatetime java-8 java-time

我很惊讶java.sql.Date有一种方法toLocalDate().

java.util.Date或者java.time.Instant没有类似的方法.看来,在java.time中,ZoneId必须始终提供给获得"LocalFoo"或"OffsetBar".

来自javadoc java.sql.Date#toLocalDate():

将此Date对象转换为LocalDate.转换创建一个LocalDate,表示与本地时区中的此Date相同的日期值

哪个时区是"当地时区"?它是否依赖于数据库或JVM设置?

Jod*_*hen 5

从概念上讲,a java.sql.Date与a相同LocalDate,即.没有时间或时区的日期.实际上,因为它java.sql.Date是基于long毫秒实现的,所以它隐含地使用了系统时区.因此,该toLocalDate()方法的存在是因为Java SQL规范引导您希望您将其java.sql.Date视为没有时区.