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

标签 java date java-11

我们最近从 Java 8 迁移到 11。在测试新版本时,我们发现拼写日期时(dddd、dd MMMM yyyy),生成的月份/日期是英文的。我们的默认语言环境设置为 nl_NL。恢复到 Java 8 修复了该问题,因此它与升级有关。我们尝试了很多方法:

  • 在 Docker 镜像和应用程序中将默认区域设置设置为 nl_NL
  • 将“java.locale.providers”设置为“COMPAT,CLDR”
  • 升级库

在调试我们的接受环境时,我们注意到 DateFormatSymbols 的月/周转换错误。

enter image description here

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

我们将不胜感激,我们已经没有主意了。

最佳答案

我尝试在答案中发布 java 问题,但它得到了审核,因为它不是错误的解决方案,这是正确的。我们通过从 Docker 镜像中删除飞行记录器来解决问题。如前所述,设置该标志会导致语言提供程序在启动过程的早期加载,并且只有默认的 en_US 语言环境可用。 java bug 的链接是:

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

关于java - DateFormatSymbols 给出了错误的月/日翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69344232/

相关文章:

Java 11 GC 时间戳

java - 迭代列表时删除元素

java - 在 Eclipse 3.6.1 上安装 AspectJ 时遇到问题

java - 在命令提示符下运行 java 代码时出现问题

Javascript 日期对象时区问题 - 不同的时区

javascript - JS : Get all months from specific date until today (also using moment. js)

java - 如何使内部 Java 包在 Eclipse 中可访问?

java - JAXB 中的 XML 解析问题

java - 在 Eclipse IDE 中保存操作以将 java 代码转换为菱形表示法

r - 随机日期的(下)月末