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

将字符串日期转为java.util.Date时遇ParseException问题求助

解决Java日期转换的ParseException问题

嘿,这个问题我碰到过好多次啦!咱们先搞清楚为啥会抛ParseException,再给你两种靠谱的解决方案~

问题根源

你输入的日期字符串是"04/18/2018 12:00 AM",但你用的SimpleDateFormat模式是"dd-MMM-yyyy,HH:mm:ss aaa"——这俩格式完全不匹配,解析器根本认不出你的输入,自然就报错了!

解决方案一:用旧版SimpleDateFormat修复

要分两步走:先用和输入匹配的模式解析字符串,再用你想要的模式格式化输出。

修正后的代码

private Date convertToDate(String date) {
    try {
        // 第一步:匹配输入格式的解析器(MM是月份,dd是日期,hh是12小时制小时)
        DateFormat dateParser = new SimpleDateFormat("MM/dd/yyyy hh:mm a");
        Date parsedDate = dateParser.parse(date);
        
        // 第二步:格式化你需要的输出格式
        DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
        String desiredFormattedDate = dateFormatter.format(parsedDate);
        System.out.println(desiredFormattedDate); // 输出示例:2018-04-18 12:00:00 AM
        
        return parsedDate;
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return null;
}

注意事项

SimpleDateFormat是非线程安全的,千万别在多线程环境下共享同一个实例哦!要么每次使用都新建,要么用ThreadLocal来包装它。

解决方案二:推荐用Java 8+的新日期API

从Java 8开始,官方推出了更安全、更易用的日期时间API(java.time包),完全替代了老旧的Date和SimpleDateFormat,再也不用担心线程安全问题啦!

示例代码

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

private LocalDateTime convertToLocalDateTime(String date) {
    try {
        // 定义输入格式的解析器
        DateTimeFormatter inputParser = DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm a");
        LocalDateTime dateTime = LocalDateTime.parse(date, inputParser);
        
        // 定义输出格式的格式化器
        DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss a");
        String desiredFormattedDate = dateTime.format(outputFormatter);
        System.out.println(desiredFormattedDate); // 输出示例:2018-04-18 12:00:00 AM
        
        return dateTime;
    } catch (DateTimeParseException e) {
        e.printStackTrace();
        return null;
    }
}

这个API不仅线程安全,而且语义更清晰,能避免很多旧API的坑,非常推荐使用!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:35:31