2016-04-21 122 views
0

我一直堅持試圖解析低於下列日期格式:的Android解析日期簡單的日期格式

2016-04-27T00:00:00 + 10:00

我已經嘗試了許多組合能似乎沒有得到它的工作。

我會想到,因爲它最有意義給我這樣的工作 - YYYY-MM-dd'T'HH:MMZ

任何想法?謝謝

+0

http://stackoverflow.com/questions/3914404/how-to-get-current-moment-in-iso-8601-format – sasikumar

回答

2

由於您沒有使用正確的格式,因此無法解析它。它應該是yyyy-MM-dd'T'HH:mm:ssZ而不是yyyy-MM-dd'T'HH:mmZ

這裏是代碼片段:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); 
String input = "2016-04-27T00:00:00+10:00"; 
Date date = sf.parse(input); 

輸出:

Tue Apr 26 14:00:00 GMT 2016 
+1

@MikeM。感謝您指出了這一點。編輯我的答案。 – user2004685

+0

這是正確的答案,謝謝。我在Z中添加了單引號,這也是錯誤的。 – Petersicecream

+0

@Petersicecream如果你正在做類似'Z'的事情,那麼它會查找字面值'Z',並且由於你沒有得到字面值,但TimeZone會失敗。 – user2004685

1

如果您在使用Jackson的JSON解析,你可以簡單地標註日期字段@JsonFormat註解。這裏有一個例子:

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss'Z'", timezone="GMT") 
public Date date;