Konvertieren Sie die Zeit basierend auf der Zeitzone mit java.time

7

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%     
Arun Kishore 16.06.2015, 15:52
quelle

2 Antworten

7

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.

%Vor%

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%     
Meno Hochschild 16.06.2015, 16:39
quelle
12

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:

%Vor%

Dann könntest du das in einen Augenblick umwandeln, oder vielleicht:

%Vor%

Also zum Beispiel:

%Vor%     
Jon Skeet 16.06.2015 15:58
quelle

Tags und Links