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

Java DateTimeFormatter解析特定日期格式失败,求格式字符串调整方案

解决方案

解析失败的核心原因是当前JVM默认Locale对a模式(上午/下午标记)的解析逻辑与目标字符串中的PM/AM不匹配。结合你只能调整格式字符串、无法修改源码的限制,提供两种可行方案:

方案1:直接匹配AM/PM字面量

将格式字符串中的a替换为[AP]M,最终格式为:

EEE MMM dd hh:mm:ss [AP]M zzz yyyy

这种方式跳过本地化的上午/下午标记解析,直接匹配字符串中的AM或PM([AP]匹配A或P单个字符,后续的M固定匹配),完全规避Locale带来的解析问题。

方案2:忽略时间与时区部分(仅保留核心日期解析)

由于你最终要解析的是LocalDate(仅需日期信息),可以将时间、AM/PM、时区部分标记为可选内容,格式字符串改为:

EEE MMM dd [hh:mm:ss a zzz] yyyy

该方案会跳过中间的非日期内容,仅解析星期、月份、日期和年份。如果仍出现AM/PM解析失败,优先选择方案1。

验证说明

两种方案都能完全匹配目标字符串Wed Jun 03 12:00:00 PM GMT 2020,无需修改源码,仅替换格式字符串即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 05:45:36