Java Date hat millisekundengenau so habe ich die Gson
Objekt wie so die Schaffung worden: in einem Fall wie diesem
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
.create();
Natürlich, die Mikrosekunden verkürzt werden, ob Sie SSS
oder SSSSSS
setzen. Es wird auch angenommen, dass das letzte Zeichen der konvertierten Zeichenfolge immer ein Z
ist.
Um zu erklären, warum Ihr Muster, verwendet man nicht funktionierte z
(Klein z), die entsprechend der Dokumentation stellt eine General Timezone (das heißt Pacific Standard Time; PST; GMT-08:00
). Außerdem, wenn Sie Z
(Großbuchstabe Z) verwenden würden, würde es auch nicht funktionieren, da es eine RFC 822 time zone (d. H. -0800
) darstellt.
In einem anderen Szenario, in dem anstelle der Z
Sie eine Zeitzone (das heißt -08
, -0800
oder -08:00
) versetzt haben, können Sie X
, XX
oder XXX
verwenden, um eine ISO 8610 time zone darzustellen. Aber das erfordert Java 7 oder 8 (ich glaube nicht, dass Android im Moment mit Java 8 kompatibel ist).
Eine andere Methode wäre, um Ihre eigenen zu schreiben Gson
Serializer and Deserializer; obwohl ich es nicht versucht habe.
Es lohnt mich auch bei java.sql.Timestamp der Klasse zu suchen, die auch von Gson
getragen wird und mehr feinkörnige Präzision (Nanosekunden), aber es ist auch eine Option, ich habe nicht untersucht.
Verwenden Sie die Klassen in [java.time framework] (http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html), die in Java 8 und höher integriert sind. Sie haben eine Auflösung von Nanosekunden für bis zu neun Ziffern einer Bruchteilsekunde. –