【发布时间】:2010-10-27 07:04:55
【问题描述】:
我们的 java 类调用 PLSQL proc,它以 NLS_DATE_FORMAT 定义的默认格式返回日期。我们的应用程序为国际化设置了自己的语言环境,但我希望日期格式保持为“DD-MON-RR”,即 en_US Locale NLS_DATE_FORMAT。由于语言环境的变化,oracle 获取的日期字符串不同,随后的 TO_DATE() 函数调用失败。我尝试通过在 java 类中更改 Locale to Locale.setDefault(new Locale("en","US")); //"en_US" 来解决此问题,它工作正常,但国际化部分将不再工作。我在新加坡,所以我的语言环境是"en_SG",而 oracle 在设置NLS_TERRITORY: SINGAPORE 后采用的日期格式是NLS_DATE_FORMAT:'DD/MM/RR'。我向服务器查询 V$NLS_PARAMETERS,默认日期格式为“DD-MON-RR”。所以我的问题是,我可以设置 NLS_DATE_FORMAT 而不影响应用程序的区域设置。或者我可以让 jdbc 驱动程序完全忽略客户端的 NLS 设置吗?
【问题讨论】:
标签: java internationalization plsql jdbc