Java String to Date Conversion抛出Unparseable日期

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

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" } 

我究竟做错了什么?

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

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

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

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

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

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