Ich versuche, das lokale Datum in UTC zu konvertieren, indem ich Joda Time verwende. Der Code, den ich verwendet habe, ist unten gezeigt und es funktioniert großartig.
%Vor%Aber wenn ich UTC Date als Parameter an die DateTimeZone.convertLocalToUTC () Methode, es verringert auch die Stunde um 3. Da es sich jedoch um ein UTC-Datum handelt, erwarte ich, dass das Datum nicht erneut konvertiert wird. Ist das ein Fehler oder fehlt mir etwas?
%Vor% Gemäß Javadoc von convertLocalToUTC
Konvertiert ein lokales Instant in ein Standard-UTC-Instant mit demselben Local Zeit. Diese Konvertierung wird verwendet, nachdem eine Berechnung durchgeführt wurde Berechnung wurde mit einer einfachen lokalen Zone durchgeführt.
Methoden macht keine Annahme oder Validierung, dass das vergangene Datum in UTC
ist oder nicht, es berücksichtigt immer das übergebene Datum als lokal und konvertiert zu UTC
. Ihre Programmausgabe ist korrekt.
Sehen Sie sich dies aus der Perspektive convertLocalToUTC()
an. Es dauert nur ein long
und ein boolean
. Es hat keine Kenntnis, dass die Länge, die du es passierst, UTC
ist oder nicht. Es wird davon ausgegangen, dass Sie eine long
, dh die lokale Zeit, übergeben und entsprechend anpassen.