【发布时间】:2016-06-09 11:54:05
【问题描述】:
我很惊讶java.sql.Date 有一个方法toLocalDate()。
java.util.Date 或 java.time.Instant 没有可比的方法。似乎在java.time 中,必须始终提供ZoneId 才能获得“LocalFoo”或“OffsetBar”。
来自java.sql.Date#toLocalDate()的javadoc:
将此 Date 对象转换为 LocalDate。 转换创建一个 LocalDate 表示与本地日期相同的日期值 时区
哪个时区是“本地时区”?它取决于数据库或 JVM 设置吗?
【问题讨论】:
-
这取决于 JVM 设置,例如系统属性“user.timezone”,另见getting default zone
-
你确定吗? java.time 的其他部分似乎有点奇怪,这个默认值不能被覆盖或显式。
-
这个问题看起来很相关,我猜这意味着它确实取决于系统设置。然而,
toLocalDate并没有在此处提及,并且对该特定问题的明确回答会很好。
标签: java java-8 java-time sqldatetime