2014-03-29 89 views
2

我有一個String格式的陽曆日子,我想用SimpleDateFormat我想要做這樣的事情在java.util.Date格式化,格式化公曆日期:如何使用的SimpleDateFormat

String gDate="20-Aug-2012";  
DateFormat sdf= new SimpleDateFormat(dd-MMM-yyyy");   
Date dDate=sdf.parse(gDate); 

但是,這將引發java.text.ParseException: Unparseable date: "20-Aug-2013"

+0

你在做什麼錯? – MxyL

+0

java.text.ParseException:無法解析日期:「2013年8月20日」 –

回答

1

如果使用方法format,而不是parse只是一個錯字(編輯完問題,這種方式),你仍然可以得到一個ParseException那麼這可能是因爲的區域設置。我建議你明確地設置語言(「八月」聽起來英語,但也可能是德國人,但肯定不是在阿拉伯語,俄語等):

String gDate = "20-Aug-2012"; 
DateFormat sdf= new SimpleDateFormat(dd-MMM-yyyy", Locale.ENGLISH); 
Date dDate = sdf.parse(gDate); 

請記住,像月份名稱每個文本片段和縮寫對於語言設置也是明智的。這也適用於週日,時區和時代的名稱。您絕不應盲目依賴隱式系統語言設置(Locale.getDefault())。

0

嘗試使用採用日期String作爲參數的parse()方法。

String gDate="20-Aug-2012"; 
java.text.DateFormat sfd = new java.text.SimpleDateFormat("dd-MMM-yyyy"); 
Date dDate = sfd.parse(gDate);