2012-11-18 113 views
2

發佈的日期字符串返回爲:Sun,18 Nov 2012 06:50:02 GMT和我的方法convertDate返回我java.text.ParseException:Unparseable日期:「太陽,18 11月2012 06:50:02 GMT「(在偏移8)。我檢查了資源,但是找不到像他們那樣有用的東西... Parsing a String with a GMT timezone to Date using SimpleDateFormatjava日期解析與格林尼治標準時間

如果您能夠了解一些情況,我們將非常感激。這裏是我的方法.. pubdate的這裏是太陽,2012 11月18日六點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; 
} 

回答

5

使用MMM月領域:

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

一旦這是固定的,不忘記返回newsDate,因爲您目前正在返回null

+0

非常感謝,工作:) –

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

相關問題