1

我正在尝试像这样解析日期:Tue Aug 28 21:16:23 +0000 2012 使用以下代码:

SimpleDateFormat format = new SimpleDateFormat("E M dd HH:mm:ssZ yyyy", Locale.ENGLISH);
String d = object.getString("created_at"); // d = Tue Aug 28 21:16:23 +0000 2012;
date = format.parse(d);

但也有例外:

09-28 11:10:24.471: W/System.err(10388): java.text.ParseException: Unparseable date: "Fri Sep 28 07:09:09 +0000 2012" (at offset 4)

我在哪里犯了错误?

4

2 回答 2

2

试试这个

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);

MMM用于表示短月份。

于 2012-09-28T07:20:19.820 回答
2

您需要 MMM 来表示 8 月的月份。

SimpleDateFormat format = new SimpleDateFormat("E MMM dd HH:mm:ssZ yyyy", Locale.ENGLISH);
        String d = "Tue Aug 28 21:16:23 +0000 2012"; // d =;
        Date date = format.parse(d);
                System.out.println(date);

输出:2012 年 8 月 28 日星期二 22:16:23 BST

查看SimpleDateFormat 的 javadoc可能会有所帮助,有一些有用的模式字符串示例。

于 2012-09-28T07:24:39.310 回答