Java日期格式化ParseException

时间:2014-08-10 03:41:04

标签: java date-format simpledateformat

我的字符串为Friday, August 01, 2014。我想格式化并显示为2014-08-01

我试过这个。但这给了java.text.ParseException: Unparseable date: "Friday, August 01, 2014"

SimpleDateFormat sdf = new SimpleDateFormat("E, MM d, yyyy");
String dateInString = "Friday, August 01, 2014";
Date date = sdf.parse(dateInString);
System.out.println(date);

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您需要阅读SimpleDateFormat API,因为它在那里得到了很好的解释。

请注意API的解释:

  
      
  • 文字:格式化时,如果图案字母数为4或更多,则使用完整格式;否则,如果可用,则使用简短或缩写形式。对于解析,两种形式都被接受,与模式字母的数量无关。
  •   
  • 数字:对于格式设置,模式字母数是最小位数,较短的数字是零填充到此数量。对于解析,除非需要分隔两个相邻的字段,否则将忽略模式字母的数量。
  •   

因此,例如,MM对应于数字月份,而不是月份名称。对于完整的月份名称,我使用MMMM,对于完整的周名称,我使用EEEE。我将dd用于两位数日期,例如01。

如,

SimpleDateFormat sdf = new SimpleDateFormat("EEEE, MMMM dd, yyyy");