当前位置: 首页 > 面试题库 >

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

赖绪
2023-03-14
问题内容

我有一个SQL查询,该查询返回oracle Date对象。例如:

从双重选择sysdate

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

字符串s = rs.getString(“ sysdate”);

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

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

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

也许这与语言环境有关。一台机器是java报告的“英语(加拿大)”,另一台是“英语(美国)”。

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


问题答案:

从Oracle的站点:

在数据库连接时,JDBC类库将服务器NLS_LANGUAGE和NLS_TERRITORY参数设置为与运行JDBC驱动程序的Java
VM的语言环境相对应。

是的,响应的差异是因为计算机指定了不同的语言环境。正确的解决方案应该是使用getDate()或getTimestamp(),或者让数据库服务器以特定格式将日期作为字符串返回,如前所述。



 类似资料:
  • 问题内容: 和JSON有什么区别? 问题答案: 正如Diego所提到的,在此处发布问题之前,最好检查文档(此链接现在已过期- 好的,我们有Wayback Machine! ),但是现在您有了: 不同之处在于,如果您指定的键不存在,则返回空字符串()。另一方面会引发一个。使用,如果它是一个错误失踪的数据,或者如果你不知道它会在那里。 编辑:来自文档的完整描述: 获取与键关联的可选字符串。如果没有这样

  • 我在运行Windows XP sp3的计算机上安装了Java 6和Java 7。我已在计算机中的环境变量(path、JAVA_HOME)中输入path- java-版本 我还是收到下面的短信 Java版本"1.7.0_09"Java(TM)SE运行时环境(构建1.7.0_09-b05)JavaHotSpot(TM)客户端VM(构建23.5-b02,混合模式,共享) 然而,当我尝试 javac-版本

  • 问题内容: 这是我第一次在Go中进行编码,而无需使用GOPATH。 我有一个档案。 我正在尝试通过Sendgrid发送电子邮件;我有一个包含我的SENDGRID_API_KEY的文件。 当尝试在我的文件中使用密钥时,该值并未被提取。 我也使用了’LookupEnv’,它返回false。 任何帮助,将不胜感激。 问题答案: 并且不检查文件。如果您的环境变量在文件中,则必须自己加载它们。或者使用为您执

  • 在QMetry中在驱动程序之间来回切换(跨不同环境)。我有一个需求,我想在多个驱动程序之间切换,以跨多个执行环境执行测试。例如,在Pcloudy(云设备管理)中启动android设备,执行一些步骤,并在桌面浏览器(浏览器堆栈)中进行验证。完成后,切换回android(在pcloudy中)并继续其他流程。这里的问题是我有不同环境的更新驱动程序功能,一旦我尝试更新驱动程序功能,以前启动的实例就会被杀死

  • 问题内容: 不知道为什么会这样。。。一直在谷歌搜索,但我似乎找不到答案。我有2个Mac,在每个Mac上都有一个包含相同package.json文件的文件夹,其中包含20个依赖项的列表。当我在…上运行“ npm install”时 计算机1: 将所有列出的依赖项安装在自己的文件夹中-总共20个文件夹。 计算机2: 安装了大量不同的文件夹-确切地说是561。这些额外的文件夹似乎是我在package.j

  • 在讨论Android安全问题时,我们提出了一个问题,但我们找不到一个合理的答案(也许是天真的问题): 为什么Android应用程序在清单中声明活动/接收者/服务,而不使用意图过滤器,并且使用标记exported=true? 另一个应用程序如何向上面声明的接收者发送显式意图?如果可能的话,请给出一个代码示例。 这有什么含义?