Ich rufe einen Service an, der GMT-Daten zurückgibt. Es funktioniert gut seit November, aber jetzt mit Sommerzeit aktiv, es scheitert. Hier ist ein Beispiel Datum aus Nicht-Sommerzeit:Kann ich ein SimpleDateFormat-Muster für Daten mit den Suffixen "Z" und "+1: 00" verwenden?
2011-12-07T15:50:01Z
Und man von heute (in der Sommerzeit):
2012-03-26T11:05:01+01:00
Früher habe ich dieses Muster wurde unter Verwendung von:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.UK);
Aber es ist am zweiten Datum oben mit einem ParseExcepton fehlgeschlagen ("Unparser Datum ..."). Also, kann ein Muster für beide verwendet werden, und wenn ja, was ist es? Wenn ich für beide kein Muster verwenden kann, welches ist das korrekte Muster für das zweite Datum?
Es sollte keinen Unterschied machen, aber wenn es das tut, wird es auf der Android-Plattform verwendet.
Dank Spencer, es keine einfache Antwort hätte wissen müssen, wäre! Ich habe versucht, die einfachen Anführungszeichen um das 'Z' zu löschen und es funktioniert nun am zweiten Datum (nach dem Entfernen des ':'), aber nicht am ersten. Sieht so aus, als müsste ich mit Bedacht auswählen, welches Datumsformat analysiert werden soll. –
Nein, ersetzen Sie einfach 'Z' am Ende (wenn es existiert) mit' +01: 00', bevor Sie das Datum analysieren. 'Z' ist das Symbol für diesen Offset. – caw