2011-08-12 89 views
4

我有以下的代碼來填寫Flash日期解析日期的android

DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss", Locale.getDefault()); 
Date _pubDate = df.parse(_pubDateE.getFirstChild().getNodeValue()); 

但我得到這個錯誤:

java.text.ParseException:無法解析的日期:「星期五,2011年8月12日15: 34:47 CEST「

出了什麼問題?

+0

什麼是_pubDateE? – ruhalde

回答

0

日期字符串不是您指定的格式。注意最後的時區?

4

我認爲你需要添加zzz的末尾(時區):

"EEE, dd MMM yyyy kk:mm:ss zzz" 
0

你可能想:new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss zzz", Locale.getDefault());

7

你錯過的日期格式時區在年底,您的異常消息,「CEST」部分。 您的代碼

DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss", Locale.getDefault()); 

應該

DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss z", Locale.getDefault()); 

您可能需要閱讀SimpleDateFormat

編輯 在頁面的底部,時區格式更克利解釋 Clearer Timezone format

+0

我試過你的例子,但我得到了同樣的錯誤:S – Johan

+0

在junit測試中將你的錯誤日期與我的代碼一起運行,它解析了你的日期,並且嘗試了zzz並且它工作。我的語言環境是EST,請注意您使用的構造函數可能不支持您的語言環境。根據javadoc:注意:此構造函數可能不支持所有語言環境。爲了全面覆蓋,請使用DateFormat類中的工廠方法。 –

+0

嗯..奇怪...在Eclipse中它工作正常。但如果我在我的Galaxy 2上嘗試它,我會看到錯誤 – Johan