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.