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

如何将含全称月份的日期字符串转为LocalDate?解析报错求助

问题解决:DateTimeParseException解析含月份全称的日期字符串

错误原因

你遇到的DateTimeParseException核心原因是格式模式与日期字符串不匹配:

  • 目标日期字符串"10 March 2024"中的月份是全称(March)
  • 你使用的格式模式"dd MMM yyyy"里的MMM仅对应月份缩写(如Mar),两者无法匹配,导致索引6处解析失败。

修正步骤

  1. 调整格式模式:将"dd MMM yyyy"改为"dd MMMM yyyy",MMMM是Java时间API中对应月份全称的格式符。
  2. 移除无效代码:dateFormat方法里的break语句没有对应的循环结构,会引发编译错误,需直接删除。

修正后的完整代码

调用逻辑

public void iConvertDate() {
    String datevalue = String.valueOf(UIPgAct.dateFormat("10 March 2024", "dd MMMM yyyy"));
}

日期转换方法

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public LocalDate dateFormat(String dateToFormat, String fromFormatPattern) {
    LocalDate dateLocal = null;
    if (dateToFormat != null) {
        try {
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern(fromFormatPattern, Locale.US);
            dateLocal = LocalDate.parse(dateToFormat, dtf);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
    return dateLocal;
}

额外说明

  • 若后续需要处理带分隔符的日期(如10-March-2024),只需将格式模式改为"dd-MMMM-yyyy"即可。
  • 保持Locale.US的设置,确保与日期字符串的语言环境匹配,避免本地化差异引发的解析问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:39:57