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

Java:DateTimeFormatter无法解析德语日期字符串问题

解决德语Locale下日期解析失败的问题

问题核心在于日期字符串格式与指定Locale不匹配:你的日期字符串中月份是英文缩写Feb,但代码里用了Locale.GERMAN,解析器会期望德语格式的月份标识,直接导致匹配失败。

分两种情况处理:

1. 日期字符串实际是英文月份格式(如18-Feb-23)

将Locale切换为Locale.ENGLISH,搭配d-MMM-yy模式(MMM对应英文月份缩写)即可解析:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yy", Locale.ENGLISH);
LocalDate date = LocalDate.parse(row.soldDate, formatter);

2. 日期字符串确实是德语月份格式

先确认系统中德语Locale对应的月份缩写格式(不同本地化环境可能有差异,比如是否带点),可以用以下代码打印验证:

for (Month month : Month.values()) {
    System.out.println(month.getDisplayName(TextStyle.SHORT, Locale.GERMAN));
}

假设输出的二月缩写是Feb.(带点),则调整日期字符串为18-Feb.-23后再解析:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-LLL-yy", Locale.GERMAN);
LocalDate date = LocalDate.parse("18-Feb.-23", formatter);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:12:51