2014-03-29 41 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);