我正在使用 SimpleDateFormat ,我收到ParseException
,如下所示。
java.text.ParseException: Unparseable date: "Mon Jul 02 21:56:10 AST 2012"
我的代码是
String dateStr = "Mon Jul 02 21:56:10 AST 2012";
DateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy ");
DateFormat writeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = readFormat.parse(dateStr);
} catch (ParseException e) {
System.out.println("Error in parsing date ********");
}
String formattedDate = "";
if (date != null) {
formattedDate = writeFormat.format(date);
}
System.out.println("Formatted date is " + formattedDate);
知道我哪里错了吗?
我也试过
DateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy ");
^
但仍然是同样的例外。
答案 0 :(得分:4)
只要我指定日期格式应使用英语区域设置的符号,您的代码就可以(使用z
,而不是Z
):
SimpleDateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
readFormat.setDateFormatSymbols(DateFormatSymbols.getInstance(Locale.ENGLISH));
按照以赛亚语,yyyy之后你还有额外的空间:yyyy ")
。删除多余的空间。
答案 1 :(得分:0)
格式代码Z
用于时区偏移,如-0800
,而格式代码z
用于书写格式,例如PST
或{{1} },根据SimpleDateFormat所描述的内容。仔细检查您的解析模式是否具有预期的大小写。