Oracle数据库中Java类中的德语日期格式错误

Oracle数据库中Java类中的德语日期格式错误,java,database,oracle,datetime,date-formatting,Java,Database,Oracle,Datetime,Date Formatting,我刚刚用JDK1.8.0_121将一个开发数据库升级到Oracle 12.2 如果我调用以下java代码: String strLokal = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.GERMANY).format(new Date()); 然后,strLokal类似于2017年6月7日下午1:56:34 如果在本地机器上使用JDK 1.8.0_20调用相同的代码,则会得到:07.

我刚刚用JDK1.8.0_121将一个开发数据库升级到Oracle 12.2

如果我调用以下java代码:

String strLokal = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.GERMANY).format(new Date());
然后,
strLokal
类似于2017年6月7日下午1:56:34

如果在本地机器上使用JDK 1.8.0_20调用相同的代码,则会得到:
07.06.2017 01:56:34

数据库中的错误格式来自哪里?桌面格式是正确的,Oracle 12.1和JDK 1.6.071的数据库也会返回这种格式


感谢您的解释。

服务器和客户端上的语言环境不匹配?它们匹配,但通过传递语言环境。德国不应该是德国吗?因为您使用的是Java 8(即使没有),现在是时候抛弃过时的类
Date
DateFormat
,使用
strLokal=LocalDateTime.now().format(DateTimeFormatter.ofcalizeddatetime(FormatStyle.MEDIUM).with Locale(Locale.dermany))。我无法复制。不过,我还没有安装Oracle RDBMS。我已经在jdk8u101、8u121和8u131以及德语和德语地区尝试了您的代码片段,以及我之前评论中的Java8版本。在所有情况下,我都会得到类似
07.06.2017 16:44:08
。我将代码行更改为您的代码,但没有成功。它仍然返回非德语格式。只有在Oracle DB(OJVM)中运行的JDK才会出现这种情况。“本地”结果很好。