有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java DateFormatSymbols给出了月/日的错误翻译

我们最近从Java8迁移到了Java11。在测试我们的新版本时,我们发现,当一个日期被拼写出来(dddd,dd-MMMM-yyyy)时,得到的月/日是英文的。我们的默认语言环境设置为nl_nl。恢复到Java 8解决了这个问题,因此它与升级有关。我们尝试了很多方法:

  • 在docker映像和应用程序中设置默认区域设置为nl_nl
  • 将“java.locale.providers”设置为“COMPAT,CLDR”
  • 升级图书馆

在调试Acceptile环境时,我们注意到DateFormatSymbols的月/周翻译错误

enter image description here

编辑: 从用户创建的模板生成Word文档时会出现问题。这些模板包含合并字段,这些合并字段用于创建正确的文档。正在mergefield上设置日期格式(例如{mergefield Merge_Date@“dddd,MMMM d,yyyy”})。用于生成这些文档的库是Aspose Word。Aspose库正在使用DateFormatSymbols进行转换

我们已经没有主意了,非常感谢您的帮助


共 (1) 个答案

  1. # 1 楼答案

    我试着在答案中发布java问题,但它被缓和了,因为它不是错误的解决方案,这是正确的。我们通过从Docker图像中删除飞行记录器解决了问题。如上所述,设置该标志会导致在启动过程中很早就加载语言提供程序,并且只有默认的en_US语言环境可用。指向java错误的链接是:

    链接:Flight Recorder VM Option causes wrong initialization of Locale Providers在JDK错误系统中