用GMT解析java日期

时间:2012-11-18 14:59:10

标签: java parsing gmt

发布日期字符串返回为:Sun,2012年11月18日06:50:02 GMT和我的convertDate方法返回java.text.ParseException:Unparseable date:“Sun,18 Nov 2012 06:50:02 GMT“(偏移8)。我检查了资源,但找不到像这样的帮助...... Parsing a String with a GMT timezone to Date using SimpleDateFormat

如果你能对它有所了解,真的很感激。这是我的方法.. pubDate这里是Sun,2012年11月18日06:50:02 GMT

public Date convertDate(String pubDate){

    SimpleDateFormat sdf =  new SimpleDateFormat("EEE, dd MM yyyy hh:mm:ss Z",Locale.US);
    Date newsDate = new GregorianCalendar(0, 0, 0).getTime();
        try{
            newsDate  = sdf.parse(pubDate);
        }catch(ParseException e){
            Log.d(Tag, "Exception Parsing date" + pubDate);
        }
    return null;
}

2 个答案:

答案 0 :(得分:5)

使用MMM作为月份字段:

new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss Z",Locale.US);

修复此问题后,请不要忘记返回newsDate,因为您当前正在返回null

答案 1 :(得分:1)

这是我做过的一点测试:

@Test
public void testDate() throws ParseException {

    String pubDate = "Sun, 18 Nov 2012 06:50:02 GMT";

    SimpleDateFormat sdf = new SimpleDateFormat(
            "EEE, dd MMM yyyy hh:mm:ss z", Locale.US);
    Date newsDate = new GregorianCalendar(0, 0, 0).getTime();

    newsDate = sdf.parse(pubDate);

}

您需要使用MMM设置月份,因为您使用的是月份的前三个字母(而M则表示full month name)。此外,时区必须为z而不是Z,因为您有ISO 8601 Time zone(GMT)。