加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java:ResultSet getString()在不同环境之间有所不同

发布时间:2020-12-15 05:22:57 所属栏目:Java 来源:网络整理
导读:我有一个返回oracle Date对象的SQL查询. 例如.: SELECT sysdate FROM DUAL 目前有代码执行以下操作: String s = rs.getString(“sysdate”); 问题是,这会在不同的环境中返回不同的日期格式(数据库是相同的). 一个环境将返回: 2011-01-31 12:59:59.0 另
我有一个返回oracle Date对象的SQL查询.
例如.:

SELECT sysdate FROM DUAL

目前有代码执行以下操作:

String s = rs.getString(“sysdate”);

问题是,这会在不同的环境中返回不同的日期格式(数据库是相同的).

一个环境将返回:
2011-01-31 12:59:59.0

另一个将返回更奇怪的东西:
2011-1-31 12.15.32.0(时间用小数分隔)

也许这与Locale有关…一台机器是“英语(加拿大)”,由java报道,另一台是“英语(美国)”.

我感兴趣的是,当结果集将日期对象转换为字符串时,该格式来自何处?

解决方法

来自Oracle的网站:

At database connection time,the JDBC
Class Library sets the server
NLS_LANGUAGE and NLS_TERRITORY
parameters to correspond to the locale
of the Java VM that runs the JDBC
driver

所以,是的,响应的不同之处在于机器具有指定的不同区域设置.正确的解决方案应该是使用getDate()或getTimestamp()或让数据库服务器以前面提到的特定格式将字符串作为字符串返回.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读