You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java17 en_GB区域下无法解析September缩写Sep的问题咨询

问题根因

这个异常是Java版本升级带来的区域本地化数据变更导致的:

  • Java 17默认使用更新版本的CLDR(Unicode通用区域数据仓库)作为本地化数据来源,你使用的Java 11版本要么默认采用JRE自带的兼容型区域数据,要么内置的CLDR版本更旧
  • 旧版区域数据中en_GB locale下September的标准缩写为Sep,但更新后的CLDR规范中,en_GB locale下September的标准缩写调整为Sept,所以输入Sep 29, 1988无法匹配格式规则,直接在索引0位置抛出解析异常。
可行解决方案

按需选择以下任意一种方案修复即可:

  1. 调整输入的月份缩写为符合当前CLDR规范的格式,将Sep 29, 1988修改为Sept 29, 1988
  2. 给DateTimeFormatter开启宽松解析模式,降低匹配规则严格度:
DateTimeFormatter format = DateTimeFormatter.ofPattern("MMM dd, yyyy")
    .withLocale(Locale.UK)
    .withResolverStyle(ResolverStyle.LENIENT);
  1. 启动JVM时指定区域数据优先级,回退到旧版兼容数据作为默认来源,添加JVM启动参数:
    -Djava.locale.providers=COMPAT,CLDR

内容的提问来源于stack exchange,提问作者steven35

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:36:00