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

Java中LocalDateTime解析带AM/PM日期字符串失败问题求助

问题根源及修复方案

你遇到的解析失败问题,核心是两个细节没处理好:

1. 月份缩写解析依赖Locale

Java的DateTimeFormatter默认采用系统本地的Locale,如果你的系统不是英文环境,Jul这类英文月份缩写就识别不了。至于May能成功,只是巧合——部分非英文Locale里五月的缩写刚好也是May,但其他英文月份缩写(比如Jul)就通不过。

2. 12小时制格式符用错了

你用的HH是24小时制的格式符,但输入字符串是带AM/PM的12小时制时间(比如07:47:00 PM),这里必须换成hh(12小时制格式符)。用HH的话,解析器会把07 PM当成24小时制的7点,和AM/PM标记矛盾,直接导致解析失败。


修复后的代码示例
String str1 = "Jul 13, 2021, 07:47:00 PM";
DateTimeFormatter formatter1 = new DateTimeFormatterBuilder()
        .parseCaseInsensitive()
        .appendPattern("MMM d, yyyy, hh:mm:ss a")
        .toFormatter(Locale.ENGLISH); // 强制指定英文Locale
LocalDateTime dateTime1 = LocalDateTime.parse(str1, formatter1);
System.out.println("Output: " + dateTime1);

运行这段代码会得到正确输出:Output: 2021-07-13T19:47


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:15:38