2012-11-22 54 views
2

如何轉換日期Tue Nov 13 14:35:04 +0000 2012 Java格式的日期格式? 我知道Date.parse(String),但我不知道我應該使用哪種格式的日期。我是否必須修改字符串以便將其解析爲日期,如果是,那麼該怎麼辦?如何將這個「Tue Nov 13 14:35:04 +0000 2012」字符串格式轉換爲Java?

+0

我認爲格式是'FULL' [my source](http://docs.oracle.com/javase/tutorial/i18n/format/dateFormat.html)。任何方式,你有什麼嘗試? – elyashiv

+0

['Date.parse(String)']的JavaDoc(http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#parse(java.lang.String))建議使用'SimpleDateFormat',如下面的答案。 – andrewdotn

回答

0
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.US); 
Date test = sdf.parse("Tue Nov 13 14:35:04 +0000 2012"); 
System.out.print(test.toString()); 
6

使用SimpleDateFormat,與

"E MMM dd HH:mm:ss Z yyyy" 

格式字符串你應該明確地使用Locale.US假設這必將用英語月/日的名稱。 (你不希望試圖解析法國名字,只是因爲默認的語言環境是法國人,例如。)

另外,不要忘了返回的Date值將沒有原來的時區的知識 - 它將具有原始文本中代表的即時的正確值,但不要期望調用toString()的結果使用同一區域 - Date.toString()始終使用默認時區。

+0

該格式字符串不是很正確 – NimChimpsky

+0

@NimChimpsky:如果您以*方式*表示它不正確(或只是編輯了答案),您的評論會更有幫助。 –

相關問題