java-8 - 从 ResultSet 获取日期以用于 java.time 类

标签 java-8 resultset getdate java-time

有没有办法得到一个 java.time (Java 8 中的新功能)来自 ResultSet 的兼容时间类?

我知道你可以使用 ResultSetgetDategetTimestamp但这些方法返回 java.sql.Date/java.sql.Timestamp现在已弃用的对象,因此使用它们来创建 ZonedDateTime 似乎是不好的做法。或类似。

最佳答案

大多数数据库供应商不支持 JDBC 4.2然而。此 specification说新java.time -类型如 LocalDate将/应该使用现有方法支持 setObject(...)getObject() .不需要和提供显式转换(无 API 更改)。

缺少支持的解决方法可以是手动转换,如 Derby-mailing list 中所述。 .

就像是:

LocalDate birthDate = resultSet.getDate("birth_date").toLocalDate();

如您所见,这些转换使用了未弃用的类型 java.sql.Date等,另见 javadoc .

关于java-8 - 从 ResultSet 获取日期以用于 java.time 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29773390/

相关文章:

sql-server - 当今天的日期时,为什么 DATENAME(GETDATE()) 给出的结果与 DATENAME(2019-02-01) 不同?

Java lambda 和 HashMap<Boolean, Object>

database - 如何使用 jdbc 从 Oracle 中的结果集中获取架构名称?

java - 从 ResultSet 按行读取数据

java - JDBC 格式 ResultSet 为表格字符串?

sql - SELECT CONVERT(VARCHAR(10),GETDATE(),110)110在这里是什么意思?

java - Tomcat 或 Java 中是否存在任何类似 beforeCrash() 或 beforeExit() 的函数

java - 是否可以在 Java 8 流 API 中定义可选流或类似异常的行为?

java - 如何使用 XPath 匹配以数字结尾的字符串

SQL 根据当前日期减去两天选择记录