2012-03-05 103 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 ...等