我有一个日期字符串:
Thu Feb 20 08:00:00 EET 1992
使用此代码对其进行格式化:
String datePatternFrom = "EEE MMM dd HH:mm:ss ZZZ yyyy";
String datePatternTo = "MMM dd, yyyy";
String prettyDate = "";
try {
DateFormat fromFormatter = new SimpleDateFormat(datePatternFrom);
Date date = (Date)fromFormatter.parse(userBirthday.toString());
DateFormat toFormatter = new SimpleDateFormat(datePatternTo);
prettyDate = toFormatter.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
为什么我会得到例外?
java.text.ParseException: Unparseable date: "Thu Feb 20 08:00:00 EET 1992" (at offset 0)
答案 0 :(得分:3)
问题在于工作日和月份以及您的语言环境。
Thu
是英文的,所以你必须告诉解析器它应该使用英文工作日:
DateFormat fromFormatter = new SimpleDateFormat(datePatternFrom, Locale.US);
这适用于您的模式。 如果未指定语言环境,则将使用默认语言,但不一定是英语语言环境。 ; - )
答案 1 :(得分:0)
可能您的userBirthday对象未创建为java.util.Date对象。你能试试System.out.println(userBirthday.getClass().getName());
吗?
答案 2 :(得分:0)
它可能是您的语言环境。尝试使用datePatternFrom制作SDF,为格式指定日期并在某处打印。看看弹出的是什么。