如何使用SimpleDateformat格式化格里高利日期

时间:2014-03-29 21:38:22

标签: java date simpledateformat date-formatting

我有String格式的格里高利日期,我希望使用java.util.DateSimpleDateFormat格式化它我想做类似的事情:

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"

2 个答案:

答案 0 :(得分:1)

如果使用方法format代替parse只是一个拼写错误(你已经用这种方式编辑了你的问题)而你仍然得到ParseException那么这可能是因为语言环境设置而发生的。我建议你明确设置语言(" 8月"听起来像英语,但也可能是德语,但肯定不是阿拉伯语,俄语等):

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

请记住,每个文本片段(如月份名称和缩写词)对语言设置都是明智的。这对于工作日,时区和时代名称也有效。你永远不应盲目依赖隐式系统语言设置(Locale.getDefault())。

答案 1 :(得分:0)

尝试使用以parse()为参数的String方法。

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