Java String to Date Conversion会抛出无法解析的日期

时间:2012-03-05 01:18:08

标签: java

我正在尝试将以下文本转换为日期,但无法正确解析它。

String strDate = "Tue Mar 13 12:00:00 EST 2012";
try{
    SimpleDateFormat sd = new SimpleDateFormat("dd/MM/yyyy");
    //also tried SimpleDateFormat sd = new SimpleDateFormat("dd/MM/yyyy HH:mm");
    //as well as sd.setTimeZone(TimeZone.getDefault());
    Date date = sd.parse(strDate);
}catch(Exception e)
{
    e.printStack();
    //fails with java.text.ParseException: Unparseable date: "Tue Mar 13 12:00:00 EST 2012"
}
我在做错了什么?

2 个答案:

答案 0 :(得分:6)

您的日期格式正在寻找dd/MM/yyyy(日/月/年)格式的内容,但您传递的是长日期字符串。您的格式将解析日期为13/05/2012的日期。查看符号的SimpleDateFormat http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html javadoc。

所以你的日期格式就像EEE MMM dd ......等等。

答案 1 :(得分:5)

尝试使用与输入匹配的日期格式。

DateFormat sd = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");

编辑:修复日期格式字符串。

注意:HH是一天中的小时而不是上午/下午。