Konvertierung von 'java.time.Instant' nach 'java.util.Date' fügt UTC-Offset hinzu

8

Ich verstehe die java.util.Date Konvertierung von und zu java.time.Instance falsch. Ich habe etwas älteren Code, mit dem ich interagieren muss, und dieser Code verwendet java.util.Date in seiner API.

Ich bin etwas verwirrt, wenn Offsets in der Date API hinzugefügt werden. Es war mein Verständnis, dass Date eine UTC-Zeit ist ("Die Date-Klasse soll die koordinierte Weltzeit (UTC) widerspiegeln"), aber wenn ich ein Date von Instant erstelle, wird ein Offset hinzugefügt:

%Vor%

Die Assertion gilt, aber die Ausgabe auf der Konsole lautet:

%Vor%

Ich frage mich, warum Date.from in diesem Fall einen Offset verwendet.

    
Jens 26.09.2017, 08:45
quelle

1 Antwort

7

Date oder Instant beide sind NICHT spezifisch für eine Zeitzone. Der Unterschied ist, wenn Sie sie drucken.

Instant.toString() druckt in der ISO-8601-Darstellung in der UTC-Zeitzone.

Date.toString() gibt es in Ihrer aktuellen Zeitzone aus.

Deshalb sehen Sie den Unterschied.

    
Codebender 26.09.2017, 08:54
quelle

Tags und Links