2011-07-28 89 views
0

我需要格式化我的日期(在Java中)是在字符串格式。當我使用下面的代碼(取自tutorial/reference source)時,它僅顯示以下錯誤。我嘗試了所有我能想到的。SimpleDateFormat給出ParseException爲未知的原因

我的代碼:

SimpleDateFormat format = new SimpleDateFormat ("E dd/MMM/yy"); 
java.util.Date date = format.parse ("12/31/2006"); 
System.out.println (date); 

這將導致以下錯誤:

java.text.ParseException: Unparseable date: "12/31/2006"

我其實是想格式化這個字符串"2011-7-27",但它給了同樣的錯誤,這導致我在想那格式爲我餵它的字符串。

有什麼事情你可以看到,我搞砸的地方?

回答

3

你給的代碼不是從您鏈接到頁面服用。該格式字符串不會出現在頁面的任何位置。

您已經包含在格式說明,對應於星期幾的「E」 - 但是你沒有提供。您還使用「MMM」作爲月份說明符,這將是文本表示(例如「Jul」)。最後,你已經爲年份指定了「yy」,但後來給出了4位數字。 (事實上​​這並不會造成問題 - 它會用四位數字處理 - 但它是最好指定你真正所期望的格式)如果您只是想給「2006/12/31」的格式應爲"MM/dd/yyyy"

如果你真的想分析「2011-7-27」你應該使用"yyyy-M-dd"作爲格式字符串。

+0

和MMM我相信意味着像Jan,Feb等3個月的減少,但你給2位數!此外,您的示例日期的月份和日期錯誤順序...仔細查看您的格式字符串,並且您發現它需要2位數字代表DAY,3個字母代表一個月份,2位數字代表一年,您的日期「12/31/2006「完全是胡說八道。 –

+0

@Angel:是啊,我是覆蓋:) –

+0

對不起,您更精細的答案不是我制定礦山theren; d –