2012-03-05 106 views
1

我试图将以下文本转换为日期,但无法使其正确解析。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" 
} 

我做错了什么?

+0

您正在使用的'SimpleDateFormat'期待格式的日期字符串,例如“02/07/2011” – 2012-03-05 01:22:39

回答

5

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

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

编辑:固定日期格式字符串。

注意:HH是白天而不是上午/下午小时。

+0

感谢您的代码示例。我的Barrings显然是错的。干杯 – ke3pup 2012-03-05 02:34:05

+1

我试过使用这种格式,但它不起作用。我的约会看起来很难。经测试:“Sep Sep 15 00:00:00 CEST 1999” – DavidVdd 2013-01-23 16:19:02

6

您的日期格式正在寻找格式为dd/MM/yyyy(日/月/年)的格式,但您传递的是长日期字符串。你的格式将解析日期如13/05/2012。查看SimpleDateFormat的符号的javadocs。

所以,你的日期格式将类似于EEE MMM DD ...等