TimeZone-Problem in Java XMLGregorianCalendar
Ich hoffe, dass diese sich nicht wiederholen.
Ich überprüfte andere suchen hier und alle von Ihnen scheinen zu sprechen "anzeigen" das Datum in der richtigen Zeitzone-format mit " = SimpleDateFormat.
Aber mein problem ist, ich erhalten ein XMLGregorianCalendar-Objekt, das sagen wir mal "CET".
Muss ich herausfinden, das format von diesem Objekt und senden der aktuellen Zeit auch in der gleichen Zeitzone wie der server.
ZB: ich brauche ein XMLGregorianCalendar-Objekt zurückgibt, die mir in diesem format(mit Zeitzone):
2012-09-19T15:23:36.421+02:00
So, ich habe gerade versucht das folgende snippet die scheint, nur die Zeit in die lokale Zeitzone 🙁
TimeZone utc = TimeZone.getTimeZone("CET");
GregorianCalendar gc = new GregorianCalendar();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
df.setTimeZone(utc);
System.out.println(" - Gregorian UTC [" + df.format(gc.getTime()) + "]")
XMLGregorianCalendar currServTime = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
System.out.println("currServTime is "+currServTime);
- Sollte dies Lesen
TimeZone utc = TimeZone.getTimeZone("UTC");
nicht MEZ? - Sicher. Ich habe versucht aus varous Beispiel strings, nur um sicher zu sein!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie auch die Zeitzone, die Sie interessiert sind, in der
GregorianCalendar
entweder durch übergabe an der Konstruktor oder durch setzen Sie es danach. Also entweder dieser Zeilen sollte für Sie arbeiten:Z
ist eine richtige und kanonische Darstellung für die UTC-Zeitzone, also mit null-offset von UTC. Wenn Sie möchten, dass einige nicht-kanonische alternative, wie+00:00
, müssen Sie eine Zeichenfolge-Ersatz oder ähnliches.Z
ist die kanonische form. Formulierungen wie+00:00
oder-00:00
gelten als gut, aber das mitZ
bevorzugt. Der link aus meinem vorherigen Kommentar sagt so viel.