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

标签 java java-8 java-time sqldatetime

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

java.util.Datejava.time.Instant 没有可比较的方法。似乎在 java.time 中,必须始终提供 ZoneId 才能获取“LocalFoo”或“OffsetBar”。

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

Converts this Date object to a LocalDate. The conversion creates a LocalDate that represents the same date value as this Date in local time zone

哪个时区是“本地时区”?它取决于数据库或 JVM 设置吗?

最佳答案

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

关于java - 哪个时区是 java.sql.Date toLocalDate 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37725264/

相关文章:

java - JScrollPane 的默认设置是什么

java - 通过 OpenSAML 中的现有元素创建 SAML 2.0 断言

java - Runnable::new 与新的 Runnable()

java - 如何删除文本并打印java文件中删除的文本行中的行?

Java 时间 : Get max number of weeks for particular year

Java 8 Time API - ZonedDateTime - 解析时指定默认 ZoneId

java - AMQP 异步监听器仅在事件发生后才开始监听消息

java - 在嵌套循环中填充数组

Java 8 流 : Converting a list of objects to a set of objects

java - JFreeChart:使用 java.time.LocalDate 或 java.time.LocalDateTime 创建图表