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

Java解析日期字符串遇ParseException,求转换为指定格式的解决方案

解决日期解析与格式化的问题

嘿,我来帮你搞定这个日期解析的坑!你遇到的ParseException其实是个很常见的小问题——你的解析格式和输入的日期字符串完全不匹配,具体来说:

  • 你拿到的服务器字符串是2018-05-23T06:39:37+0000,这里面压根没有毫秒部分(就是.SSS对应的那串数字)
  • 但你写的解析格式是yyyy-MM-dd'T'HH:mm:ss.SSSZ,强制要求必须有毫秒,这不就直接解析失败了嘛!

另外你说直接用dd/MM/yyyy hh:mm去解析原字符串也报错,这很正常——解析格式必须和输入字符串的结构严格对应,你总不能让程序把2018-05-23T...直接当成dd/MM/yyyy来认对吧?得先把原字符串正确解析成日期对象,再转成你想要的格式。

方案一:用SimpleDateFormat(兼容旧Java版本)

分两步走,先解析再格式化,思路很清晰:

第一步:用匹配输入的格式解析

原字符串对应的正确解析格式是yyyy-MM-dd'T'HH:mm:ssZ(去掉了多余的.SSS)

完整代码示例

String createdDate = comment.getCreatedDateTime();
// 定义解析用的格式(和输入字符串严格匹配)
SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US);
// 定义输出用的目标格式
SimpleDateFormat outputFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm", Locale.US);

try {
    Date parsedDate = parseFormat.parse(createdDate);
    // 把解析后的Date转成你想要的格式字符串
    createdDate = outputFormat.format(parsedDate);
} catch (ParseException ex) {
    ex.printStackTrace();
    // 这里可以加个友好的错误提示,别让用户看到原错误字符串
    createdDate = "日期解析失败";
}
mCommentDate.setText(createdDate);

方案二:用Java 8+的新日期API(强烈推荐!)

SimpleDateFormat有个大坑——它是线程不安全的,在多线程环境下容易出问题。Java 8及以后推出的java.time包(JSR-310)解决了这个问题,用法也更直观:

String createdDate = comment.getCreatedDateTime();
// 输入格式
DateTimeFormatter parseFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US);
// 输出格式
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm", Locale.US);

try {
    // 解析成带时区的日期时间对象
    ZonedDateTime zonedDateTime = ZonedDateTime.parse(createdDate, parseFormatter);
    // 转成目标格式的字符串
    createdDate = zonedDateTime.format(outputFormatter);
} catch (DateTimeParseException ex) {
    ex.printStackTrace();
    createdDate = "日期解析失败";
}
mCommentDate.setText(createdDate);

小提醒

  • 注意HH和hh的区别:HH是24小时制,hh是12小时制。比如你的时间是06:39,用hh会显示成上午06:39,如果需要区分上午下午,可以在输出格式里加aa,比如dd/MM/yyyy hh:mm aa
  • 如果以后遇到的时区格式是+00:00(带冒号),那解析格式里的Z要换成XXX哦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:42:48