3

我有一个日期字符串:

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)
4

3 回答 3

3

问题在于工作日和月份以及您的语言环境。 Thu是英文,所以你必须告诉解析器它应该使用英文工作日:

DateFormat fromFormatter = new SimpleDateFormat(datePatternFrom, Locale.US);

这将适用于您的模式。如果您不指定区域设置,将使用默认设置,但并不总是英语。;-)

于 2012-10-23T08:22:18.173 回答
0

它可能是您的语言环境。尝试使用 datePatternFrom 制作 SDF,给它一个日期以格式化并在某处打印。看看弹出什么。

于 2012-10-23T07:58:08.067 回答
0

可能您的 userBirthday 对象不是作为 java.util.Date 对象创建的。你可以试试System.out.println(userBirthday.getClass().getName());吗?

于 2012-10-23T07:49:33.413 回答