我的字符串为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);
我该怎么做?
答案 0 :(得分:3)
您需要阅读SimpleDateFormat API,因为它在那里得到了很好的解释。
请注意API的解释:
- 文字:格式化时,如果图案字母数为4或更多,则使用完整格式;否则,如果可用,则使用简短或缩写形式。对于解析,两种形式都被接受,与模式字母的数量无关。
- 数字:对于格式设置,模式字母数是最小位数,较短的数字是零填充到此数量。对于解析,除非需要分隔两个相邻的字段,否则将忽略模式字母的数量。
因此,例如,MM对应于数字月份,而不是月份名称。对于完整的月份名称,我使用MMMM
,对于完整的周名称,我使用EEEE
。我将dd
用于两位数日期,例如01。
如,
SimpleDateFormat sdf = new SimpleDateFormat("EEEE, MMMM dd, yyyy");