我正在尝试将以下文本转换为日期,但无法正确解析它。
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"
}
我在做错了什么?
答案 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是一天中的小时而不是上午/下午。