0

日期字符串來源於我的應用的XML feed,格式如下Mon, 10 Dec 2012 13:18:23 GMT,我想格式爲「13:18:23」。我有這種方法格式化日期字符串時發生IllegalArgumentException?

private String formatTime(String time) { 
    DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss zzz", Locale.getDefault()); 

    String temp = null; 

    try { 

     temp = df.format(time); 

    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return temp; 
} 

但我不斷收到錯誤IllegalArgumentException

任何人都可以看到這個代碼正在進行?

+0

你的時間包含什麼? –

回答

1
String tmp = "Mon, 10 Dec 2012 13:18:23 GMT"; 
    String DATE_FORMAT = "EEE, dd MMM yyyy kk:mm:ss zzz"; 
    String DATE_FORMAT_NOW = "kk:mm:ss"; 

    SimpleDateFormat sdfSource = new SimpleDateFormat(DATE_FORMAT); 
    Date date = sdfSource.parse(tmp); 


    SimpleDateFormat sdfDestination = new SimpleDateFormat(DATE_FORMAT_NOW); 

    tmp = sdfDestination.format(date); 


    System.out.println("Converted date is : " + tmp); 

輸出

Converted date is : 15:18:23

你有差別,因爲GMT + 2小時。取下DATE_FORMATzzz,你會得到:

13:18:23

1
df.format(time); 

您正在向格式()方法傳遞一個字符串,而它需要Date對象。

請參閱該文檔here