2015-11-03 209 views
3

我有一個奇怪的問題,當我試圖解析這個日期:Tue Nov 03 10:50:16 CET 2015使用Java SimpleDateFormat,它會拋出一個異常,因爲在那裏的「星期二」。
我的代碼是:Java日期不解析日

String date = "Tue Nov 03 10:50:16 CET 2015"; 
Date parsedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").parse(date); 

會拋出該異常:java.text.ParseException: Unparseable date: "Tue Nov 03 10:50:16 CET 2015"

我試圖調試它,這是什麼歸結爲:

String date = "Tue"; 
Date parsedDate = new SimpleDateFormat("EEE").parse(date); 

會拋出同一類型的例外。 (我也嘗試過用一個'E')。我認爲這很奇怪,因爲文檔告訴我這是應該如何使用的。來源:https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

解決方案比歡迎!
謝謝,盧卡

更新:解析點是解析MANIFEST.getMainAttributes().getValue("Created-On");

+10

你的語言環境是什麼?文本的日期和月份表示取決於此。 – cheffe

+2

嘗試將「en-us」區域設置傳遞給構造函數以鎖定該部分。 – Thilo

+2

你可以嘗試@cheffe建議,像這個'SimpleDateFormat(「EEE」,Locale.ENGLISH)''。順便說一下,我用你的字符串測試了你的代碼,它工作正常。語言在我的系統中英語 –

回答

1

感謝cheffe我想出瞭解決方案:

Date parsedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(date); 

哪些工作! :)