gpt4 book ai didi

java - 从 JDBC ResultSet 中以字符串形式读取日期时指定的日期格式在哪里

转载 作者:搜寻专家 更新时间:2023-11-01 03:38:41 25 4
gpt4 key购买 nike

这与 Default JDBC date format when reading date as a string from ResultSet 完全相同,但这个问题从来没有真正回答过;人们只是提供了编写代码的替代方法。

我特别想问是否有人知道默认转换格式的指定位置,以及它是否由某处的 JDBC 规范定义,或者只是留给各个 JDBC 驱动程序。如果是后者,那么另一个问题是 Oracle 10g JDBC 如何做到这一点?

** 添加了 1 月 15 日:

抱歉,我认为问题已经足够清楚了,但显然不是。我不是要从数据库中检索日期值,也不需要有关如何执行此操作的建议。

我不认为这是引用问题的重复,这就是为什么我在这里问了一个单独的问题。虽然标题几乎相同,但引用的问题(不管 OP 的意图是什么)已经用从数据库中检索日期值的替代方法得到了回答,这不是我想知道的。

干杯,

最佳答案

好的,所以通过 JDBC 代码进行跟踪,看起来 Oracle 驱动程序硬编码了它自己的格式:

  int k = (((bytes[0 + j] & 255) - 100) * 100 + (bytes[1 + j] & 255)) - 100;
String s = k + "-" + toStr(bytes[2 + j])
+ "-" + toStr(bytes[3 + j])
+ " " + toStr(bytes[4 + j] - 1)
+ ":" + toStr(bytes[5 + j] - 1)
+ ":" + toStr(bytes[6 + j] - 1)
+ ".0";

因此,我猜测:

  1. 此行为未在任何 JDBC 规范中指定。
  2. 每个驱动程序库都可以返回它喜欢的任何格式。

我假设这些是因为不同的实现返回不同的格式。当然,这种格式仍然有可能在 JDBC 规范的某个地方被强制要求,并且某些实现不符合规范,但这似乎不太可能。我当然无法在 JDBC 规范中找到对此的任何引用(但这并不意味着它们不在某处!)。

然而,就我而言,关键点是格式在库中是硬编码的,不会被任何环境或其他设置覆盖,而且只要驱动程序库在系统之间也不会改变版本保持不变。

关于java - 从 JDBC ResultSet 中以字符串形式读取日期时指定的日期格式在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21104197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com