Die TimeZone.getDefault() gibt die Systemzeitzone zurück, bis sie geändert wird.Wie bekomme ich Betriebssystem-Zeitzone in Java?
Probe 1:
System.out.println(TimeZone.getDefault());
Ergebnis:
Europe/Kaliningrad
Es ist Systemzeitzone.
Probe 2:
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Kolkata"));
System.out.println(TimeZone.getDefault());
Ergebnis:
Asia/Kolkata
Es ist keine Systemzeitzone, Systemzeitzone ist nach wie vor Europa/Kaliningrad.
Also wie bekomme ich Systemzeitzone auch nach Änderung der Standard DateTimeZone.
die Antwort in früheren Post https://stackoverflow.com/questions/24806183/get-date-in-current-timezone-in-java – user7294900
@ user7294900, es gibt Asien/Kalkutta statt Europa/Kaliningrad – Evgenia
Was erwartest du? Wenn Sie 'setDefault' aufrufen, ändert sich die Standardzeitzone für die gesamte JVM, ** das ist das erwartete Verhalten **. Wenn Sie es nicht ändern möchten, rufen Sie 'setDefault' nicht auf (oder speichern Sie die Zeitzone in einer Variablen, bevor Sie den Standardwert ändern, wie bereits in den Antworten unten vorgeschlagen). –