Java:ResultSet getString() 因环境而异

2024-02-11

我有一个返回 Oracle Date 对象的 SQL 查询。 例如。:

从 DUAL 中选择系统日期

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

String s = rs.getString("sysdate");

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

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

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

也许这与区域设置有关......一台机器是java报告的“英语(加拿大)”,另一台机器是“英语(美国)”。

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


来自甲骨文网站:

在连接数据库时,JDBC 类库设置服务器 NLS_LANGUAGE 和 NLS_TERRITORY 与语言环境相对应的参数 运行 JDBC 的 Java VM 司机

所以是的,响应的差异是因为机器指定了不同的区域设置。正确的解决方案应该是使用 getDate() 或 getTimestamp() 或让数据库服务器以前面提到的特定格式将日期作为字符串返回。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:ResultSet getString() 因环境而异 的相关文章

随机推荐