Parsing-Datum mit verschiedenen Zeitzonen

Selbst mit ungefähr 15 Jahren in Java stolpert man immer über das Thema des Umgangs mit Daten und Zeiten ...

Hier ist die Situation: Ich bekomme einen Zeitstempel von einem externen System alsString Darstellung. Die Semantik des Zeitstempels ist, dass es ein UTC-Datum darstellt. Dieser Zeitstempel muss in eine Entität und dann in eine PostgreSQL-Datenbank in einer eingefügt werdenTIMESTAMP Feld. Zusätzlich muss ich den gleichen Zeitstempel wie die Ortszeit (in meinem Fall MESZ) in die Entität und dann in die Datenbank in ein einfügenTIMESTAMP WITH TIME ZONE Feld.

Was ist der richtige Weg, um sicherzustellen, dass die Zeitstempel unabhängig von den Einstellungen des Computers, auf dem der Code ausgeführt wird, korrekt in der Entität (um einige Überprüfungen mit anderen UTC-Zeitstempeln durchzuführen) und in der Datenbank (um sie später in Berichten zu verwenden) gespeichert werden auf)?

Hier ist der Code, der auf meinem lokalen Computer einwandfrei funktioniert hat:

<code>SimpleDateFormat sdfUTC = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
sdfUTC.setTimeZone(TimeZone.getTimeZone("UTC"));
Date utcTimestamp = sdfUTC.parse(utcTimestampString);
// getMachinesTimezone is some internal util method giving the TimeZone object of the machines Location
Calendar localTimestamp = new GregorianCalendar(getMachinesTimezone());
localTimestamp.setTimeInMillis(utcTimestamp.getTime());
</code>

Bei der Ausführung desselben Codes auf dem Server kam es jedoch zu unterschiedlichen Zeiten, sodass ich davon ausgehe, dass dies nicht die richtige Vorgehensweise ist. Irgendwelche Vorschläge?

PS: Ich habe bei der Suche in diesem Forum etwas über Joda Time gelesen, aber in dem angegebenen Projekt kann ich keine neuen Bibliotheken einführen, da ich nur ein vorhandenes Modul ändere. Daher muss ich mit dem Standard-JDK1.6 leben

Antworten auf die Frage(3)

Ihre Antwort auf die Frage