我确实对OJDBC8有一个问题。不久前,我决定从OJDBC6 -> OJDBC8和一些在停止工作之前工作的功能切换。我有一个具有GMT-4和所有其他属性的Calendar对象.当我使用OJDBC6时,下面的代码工作得很好,时间戳会调整到时区。
rs.getTimestamp(1, calendar)当使用OJDBC8和上面相同的代码时,时间戳不会被调整,基本上时间戳不会改变它的值与数据库中的值相同。我已经检查了OJDBC8代码,并且版本6和8之间的逻辑是不同的。我不明白为什么我们将日历对象传递给getTimestamp()方法,但它甚至没有在OJDBC8中使用。
发布于 2020-09-15 20:28:16
注意,ojdbc8的Java编译器级别是Java-8,而ojdbc6的编译器级别是Java-6。在Java-8环境下,引入了一个全新的日期时间API .遗留的日期时间API (java.util)容易出错,使用它们的代码过去很复杂,很难理解。
您应该使用现代日期时间API (java.time)并按以下方式执行:
OffsetDateTime odt = rs.getObject(1, OffsetDateTime.class);从日期:时间了解有关现代日期时间API的更多信息。
您将作出的改变,以切换到现代的日期时间API将是值得的,并将有助于您的长期。
https://stackoverflow.com/questions/63909083
复制相似问题