2016-04-21 9 views
0

Ich steckte versucht, das folgende Datumsformat unten zu analysieren:Android Parse-Datum Einfache Datumsformat

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

Ich habe versucht, viele Kombinationen und können Es scheint nicht zu funktionieren.

Ich habe gedacht, das funktionieren würde, wie es den meisten Sinn für mich - yyyy-MM-dd'T'HH: MMZ

Irgendwelche Ideen? Danke

+0

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

Antwort

2

Sie können es nicht analysieren, da Sie nicht das richtige Format verwenden. Es sollte yyyy-MM-dd'T'HH:mm:ssZ statt yyyy-MM-dd'T'HH:mmZ sein. Hier

ist der Code-Schnipsel:

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

Ausgang:

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

@MikeM. Danke, dass du darauf hingewiesen hast. Bearbeitete meine Antwort. – user2004685

+0

Dies ist die richtige Antwort, Danke. Ich fügte die einzelnen Zitate um das Z hinzu, was ebenfalls falsch war. – Petersicecream

+0

@Petersicecream Wenn Sie etwas wie "Z" machen, dann sucht es nach dem Literal "Z" und da Sie das Literal nicht bekommen, aber die TimeZone schlägt fehl. – user2004685

1

Im Fall, dass Sie Jackson für JSON Parsen, können Sie einfach Datumsfeld mit @JsonFormat Annotation annotieren. Hier ein Beispiel:

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