从JDBC 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规范中找不到对此的任何引用(但这并不意味着它们不存在!)。

但是,就我而言,关键是格式是在库中硬编码的,并且不能被任何环境或其他设置覆盖,但是只要驱动程序库的版本保持不变,该格式就不会在整个系统中更改。相同。

以上是 从JDBC ResultSet中以字符串形式读取日期时指定的日期格式在哪里 的全部内容, 来源链接: utcz.com/qa/404109.html

回到顶部