Wie ändere ich die Zeit basierend auf Zeitzone in LocalDateTime , hier habe ich ein Datum mit Zeitzone als EST gebaut, jetzt muss ich die UTC finden der entsprechenden Zeit. Bitte hilf mir, das zu lösen
%Vor% Diese Antwort könnte irgendwie strukturierter sein als die richtige Antwort von Jon Skeet. In meinem Kommentar oben habe ich auch darauf hingewiesen, die unveränderliche Natur von DateTimeFormatter
nicht zu übersehen, also bitte immer das Ergebnis einer beliebigen Methode mit dem Präfix "mit ... ()" einer Variablen desselben Typs zuweisen.
Dann weisen Sie der EST-Zone Ihr lokales Datum zu. Es ist sicherer, die IANA-Notation "America / New_York" zu verwenden, als die veraltete Form "EST5EDT" zu verwenden (die nur feste dst-Regeln unterstützt, ohne historische Historien-Offsets).
%Vor%Schließlich wandeln Sie den globalen Zwischenzeitstempel zurück in ein lokales Datum-Zeit-Format mit der Offset-UTC + 00 unter Beibehaltung der gleichen physikalischen Zeit:
%Vor% Sie sollten nicht daran denken, die Zeitzone von LocalDateTime
- a LocalDateTime
nicht zu ändern . Stattdessen sollten Sie eine ZonedDateTime
aus einer LocalDateTime
und eine Zeitzone ( ZoneId
) erstellen. Entfernen Sie zuerst den formatter.withZone
-Aufruf und verwenden Sie dann:
Dann könntest du das in einen Augenblick umwandeln, oder vielleicht:
%Vor%Also zum Beispiel:
%Vor%