Java的。无法使用日期格式解析日期

时间:2012-10-23 07:43:08

标签: java date date-format

我有一个日期字符串:

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)

3 个答案:

答案 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,为格式指定日期并在某处打印。看看弹出的是什么。