gpt4 book ai didi

java - 9 月的简短格式 "Sep"不再在 Java 17 的 en_GB 语言环境中解析

转载 作者:行者123 更新时间:2023-12-04 11:22:37 28 4
gpt4 key购买 nike

这适用于 Java 11 但不适用于 Java 17

DateTimeFormatter format = DateTimeFormatter.ofPattern("MMM dd, yyyy")
.withLocale(Locale.UK);
format.parse("Sep 29, 1988");
Java 17 堆栈跟踪:
Exception in thread "main" java.time.format.DateTimeParseException: Text 'Sep 29, 1988' could not be parsed at index 0
at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1880)
我的Java版本:
openjdk version "17" 2021-09-14 LTS
OpenJDK Runtime Environment Zulu17.28+13-CA (build 17+35-LTS)
OpenJDK 64-Bit Server VM Zulu17.28+13-CA (build 17+35-LTS, mixed mode, sharing)
发生了什么变化?

最佳答案

似乎在 en_GB 语言环境中,九月的缩写形式现在是“九月”,而不是“九月”。所有其他月份都是与 en_US 中相同的 3 个字母缩写。有点意思。作为一个英国人,“Sep”在我看来是错误的。
这是票:https://bugs.openjdk.java.net/browse/JDK-8251317
这不是 JDK 作者有意识的决定。 Java中默认使用的locale数据来自Common Locale Data Repository (CLDR) ,这是 Unicode Consortium 的一个项目.较新版本的 Java 随附有较新版本的 CLDR。因此,您可能偶尔会看到语言环境行为的变化。因此,您遇到的更改是功能,而不是错误。
你的只是许多小的调整之一。
这是 PR 中的特定更改,它为您打破了它:
https://github.com/openjdk/jdk/pull/1279/files#diff-97210acd6f77c4f4979c43445d60ba1c369f058230e41177dceca697800b1fa2R116

关于java - 9 月的简短格式 "Sep"不再在 Java 17 的 en_GB 语言环境中解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69267710/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com