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

Java使用SimpleDateFormat解析日期报Unparseable date异常如何解决

异常原因
  • 格式串和待解析日期的结构不匹配:你定义的SimpleDateFormat解析模式为"MMMM d,yyyy,h:mm",其中日期和年份之间的逗号后没有预留空格位置,但实际传入的日期字符串在逗号后带有空格,解析时字符位置无法对齐,直接触发解析失败。
  • 小时占位符选型错误:模式中使用的小写h对应12小时制小时(取值范围1~12),待解析时间的小时位为13,属于24小时制计时范畴,超出12小时制占位符的可识别范围,即便修正空格问题,该错误也会导致解析异常。
修复方案

只需要调整格式串,补上逗号后的空格、将12小时制的h替换为24小时制对应的大写H即可,修正后可正常运行的代码如下:

String date="November 7, 2022 13:33";
SimpleDateFormat sdf=new SimpleDateFormat("MMMM d, yyyy H:mm");
Date currentdate;
currentdate=sdf.parse(date);
System.out.println(currentdate);

补充提示:如果你的运行环境为JDK8及以上版本,更推荐使用java.time包下的DateTimeFormatter、LocalDateTime替代老旧的SimpleDateFormat,前者是线程安全的,解析规则更严谨,不会出现隐式的类型转换错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:30:42