gpt4 book ai didi

java - 如何在不设置区域设置的情况下设置 NLS 日期格式

转载 作者:行者123 更新时间:2023-12-04 06:42:56 34 4
gpt4 key购买 nike

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

最佳答案

您可以使用 to_char函数可以根据需要格式化日期,也可以在 to_char 中包含第三个参数表示使用的语言环境的函数:

select to_char(sysdate, 'DY-MM-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN')  from dual;

更多关于日期格式的信息可以在 SQL Reference 中找到.

关于java - 如何在不设置区域设置的情况下设置 NLS 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4030717/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com