Java SimpleDateFormat:无法解析的日期异常

时间:2013-01-28 13:24:24

标签: java simpledateformat

代码如下所述:

public static void main(String[] args){
    Date date = new Date();
    DateFormat dateFormat= new SimpleDateFormat("dd-MMM-yyy");

    try{
        Date formattedDate = dateFormat.parse(date.toString());
        System.out.println(formattedDate.toString());
    }catch(ParseException parseEx){
        parseEx.printStackTrace();
    }
}

在上面的代码中,dateFormat.parse(date.toString())投放了无法解析的日期例外:Unparseable date: "Mon Jan 28 18:53:24 IST 2013

我无法找出原因。

3 个答案:

答案 0 :(得分:4)

使用java.util.Date

SimpleDateFOrmat.format(java.util.Date)实例格式化为字符串
Date date = new Date();
    DateFormat dateFormat= new SimpleDateFormat("dd-MMM-yyy");

    try{
        Date formattedDate = dateFormat.parse(dateFormat.format(date));
        System.out.println(formattedDate.toString());
    }catch(ParseException parseEx){
        parseEx.printStackTrace();
    }

答案 1 :(得分:4)

为什么要将日期转换为字符串并将其解析回日期?

您的代码失败的原因是您尝试使用仅接受dd-MMM-yyy格式的日期的格式化程序转换完整日期。

答案 2 :(得分:2)

public static void main(String[] args) throws ParseException {

    Date date = new Date();
    DateFormat dateFormat = new SimpleDateFormat(
            "EEE MMM d HH:mm:ss Z yyyy");

    Date formattedDate = dateFormat.parse(date.toString());
    System.out.println(formattedDate);

}

这就是你想要做的......是吗?