Java 正在从结果集中定位 AM/PM 标记
Java is localizing the AM/PM marker from a result set
我有以下简单代码 return 来自 Oracle 数据库的当前日期时间:
String sql = "select to_char(sysdate,'MM/dd/yyyy HH:MI AM') from dual";
Statement statement = dbConnection.createStatement();
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
value = rs.getString(1);
System.out.println(value);
}
如果我 运行 在其他应用程序(如 DBeaver)中使用相同的 SQL 语句,我得到:
01/27/2021 03:04 PM
但是当我 运行 Java 代码(来自 Eclipse 或命令行)时,我得到:
01/27/2021 03:04 TARDE
看起来 Java 正在本地化 AM/PM 标记,但我找不到可以配置的位置。这只发生在我的机器上。是否可以在不更改代码的情况下在某处进行配置?因为同样的 Java 代码正在 运行 打印并在其他机器上打印预期结果(使用 PM / AM 标记,而不是单词 TARDE)。
我正在使用 Windows 10 和 JDK 8u281
Java 没有这样做,如果您省略第三个参数,to_char
函数将根据会话设置本地化 AM
。
TO_CHAR(expression [, 'date_format' ] [, nslparam ] )
If you omit 'nlsparam', then this function uses the default date
language for your session.
我有以下简单代码 return 来自 Oracle 数据库的当前日期时间:
String sql = "select to_char(sysdate,'MM/dd/yyyy HH:MI AM') from dual";
Statement statement = dbConnection.createStatement();
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
value = rs.getString(1);
System.out.println(value);
}
如果我 运行 在其他应用程序(如 DBeaver)中使用相同的 SQL 语句,我得到:
01/27/2021 03:04 PM
但是当我 运行 Java 代码(来自 Eclipse 或命令行)时,我得到:
01/27/2021 03:04 TARDE
看起来 Java 正在本地化 AM/PM 标记,但我找不到可以配置的位置。这只发生在我的机器上。是否可以在不更改代码的情况下在某处进行配置?因为同样的 Java 代码正在 运行 打印并在其他机器上打印预期结果(使用 PM / AM 标记,而不是单词 TARDE)。
我正在使用 Windows 10 和 JDK 8u281
Java 没有这样做,如果您省略第三个参数,to_char
函数将根据会话设置本地化 AM
。
TO_CHAR(expression [, 'date_format' ] [, nslparam ] )
If you omit 'nlsparam', then this function uses the default date language for your session.