2012-03-10 127 views
0

我想將RC3339時間格式轉換爲MM-dd-yyyy hh:mm a,但它在sampleDate處顯示空值。Regd無法解析日期:

timestamp = rcobj.getString("timestamp"); 
SimpleDateFormat sdf = new SimpleDateFormat(
    "yyyy-MM-dd'T'HH:mm:ss+SSSZ", Locale.US); 
Date sampleDate = sdf.parse(timestamp, new ParsePosition(0)); 
sdf = new SimpleDateFormat("MM-dd-yyyy hh:mm a", Locale.US); 
if (timestamp != null) { 
    timestamp = sdf.format(sampleDate); 
} 
+0

'timestamp'的價值是什麼?爲什麼你解析它,如果它可能是空的,而不先檢查? (另外,我假設這是Java,但是如果你這樣標記它,它會有所幫助......) – 2012-03-10 20:30:38

回答

0

如果timestamp是一個無效的日期,parse method拋出一個ParseException,所以它不是。

如果timestampnull,parse()將拋出NullPointerException

我幾乎可以保證rcobj.getString("timestamp")返回null


BTW parse(timestamp, new ParsePosition(0))相當於簡單的parse(timestamp)

+0

時間戳具有這樣的值:2012-01-19T18:23:43 + 0000.但它現在通過改變字符串的模式IN SimpleDateFormat.I使用這個來修復:yyyy-MM-dd'T'HH:mm:ss + SSSZ相反,它在我使用yyyy-MM-dd'T'HH時有效:mm :ss它與我的時間戳字符串不匹配的偏移模式。當我改變模式它工作得很好。這些幫助我。 – user907998 2012-03-11 13:55:43