Bei Ihrer Eingabe von 2014-09-17T12:00:44.0000000Z
, genügt es nicht, den Brief zu entkommen T
nur. Sie müssen auch die nachfolgende Z
behandeln. Aber Achtung, diese Z
ist kein Literal, sondern hat die Bedeutung UTC+00:00
Zeitzone Offset nach ISO-8601-standard
. Es ist also NICHT richtig, Z
zu entkommen.
SimpleDateFormat
behandelt diese spezielle char Z
von Muster Symbol X
. So ist die endgültige Lösung sieht so aus:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX");
Date d = sdf.parse("2014-09-17T12:00:44.0000000Z");
System.out.println(d); // output: Wed Sep 17 14:00:44 CEST 2014
Beachten Sie, dass die verschiedenen Taktzeit rechts für Zeitzone ist CEST
(toString()
verwendet Systemzeitzone), und das Ergebnis entspricht UTC-time 12:00:44
. Außerdem musste ich sieben Symbole S einfügen, um Ihre Eingaben korrekt zu verarbeiten, die eine Genauigkeit von 100ns
vorgeben (obwohl Java Pre 8 nur Millisekunden verarbeiten kann).
Wie parsen Sie? –
current_date = formatter.parse (Datum) – mbezunartea
Fügen Sie das formatter Objekt auch hier hinzu –