java DateFormatSymbols给出了月/日的错误翻译
我们最近从Java8迁移到了Java11。在测试我们的新版本时,我们发现,当一个日期被拼写出来(dddd,dd-MMMM-yyyy)时,得到的月/日是英文的。我们的默认语言环境设置为nl_nl。恢复到Java 8解决了这个问题,因此它与升级有关。我们尝试了很多方法:
- 在docker映像和应用程序中设置默认区域设置为nl_nl
- 将“java.locale.providers”设置为“COMPAT,CLDR”
- 升级图书馆
在调试Acceptile环境时,我们注意到DateFormatSymbols的月/周翻译错误
编辑:
从用户创建的模板生成Word文档时会出现问题。这些模板包含合并字段,这些合并字段用于创建正确的文档。正在mergefield上设置日期格式(例如{mergefield Merge_Date@“dddd,MMMM d,yyyy”})。用于生成这些文档的库是Aspose Word。Aspose库正在使用DateFormatSymbols
进行转换
我们已经没有主意了,非常感谢您的帮助
# 1 楼答案
我试着在答案中发布java问题,但它被缓和了,因为它不是错误的解决方案,这是正确的。我们通过从Docker图像中删除飞行记录器解决了问题。如上所述,设置该标志会导致在启动过程中很早就加载语言提供程序,并且只有默认的en_US语言环境可用。指向java错误的链接是:
链接:Flight Recorder VM Option causes wrong initialization of Locale Providers在JDK错误系统中