1

我试图解析以下日期:

 Wed Aug 27 13:08:45 +0000 2008 

(适用于 Twitter API 1.1)

我制作以下格式:

/**
 * Large twitter date format sample: "Wed Aug 27 13:08:45 +0000 2008"
 */
private static final String LARGE_TWITTER_DATE_FORMAT = "EEE MMM dd HH:mm:ss Z yyyy";

但它说:

java.text.ParseException: Unparseable date: "Sun Dec 25 14:49:28 +0000 2011" (at offset 0)
     at java.text.DateFormat.parse(DateFormat.java:626)

我做错了什么?

谢谢

4

2 回答 2

4

我认为这是语言环境问题。在我的机器上运行该代码给了我预期的结果,无一例外。

提示:解析ENGLISH语言环境效果很好

 String LARGE_TWITTER_DATE_FORMAT = "EEE MMM dd HH:mm:ss Z yyyy";
 String twiDate = "Wed Aug 27 13:08:45 +0000 2008";
 new SimpleDateFormat(LARGE_TWITTER_DATE_FORMAT, Locale.ENGLISH)
       .parse(twiDate).getHours());

解析法国会导致您遇到locale 相同的错误

String LARGE_TWITTER_DATE_FORMAT = "EEE MMM dd HH:mm:ss Z yyyy";
String twiDate = "Wed Aug 27 13:08:45 +0000 2008";
System.out.println(new SimpleDateFormat(LARGE_TWITTER_DATE_FORMAT, Locale.FRANCE)
                .parse(twiDate).getHours());
于 2012-09-17T15:19:24.797 回答
-1

以下对我有用

import java.text.ParseException;
import java.text.SimpleDateFormat;


public class Test {

    private static final String LARGE_TWITTER_DATE_FORMAT = "EEE MMM dd HH:mm:ss Z yyyy";

    /**
     * @param args
     */
    public static void main(String[] args) {
        SimpleDateFormat df = new SimpleDateFormat(LARGE_TWITTER_DATE_FORMAT);

        try {
            System.out.println(df.parse("Wed Aug 27 13:08:45 +0000 2008 "));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
于 2012-09-17T15:20:31.840 回答