Konvertieren Sie Unix-Zeitstempel zwischen verschiedenen Zeitzonen und verschiedenen Sommerzeiten in Java

PROBLEM GELÖST Externes Gerät berechnete und sendete nicht standardmäßige 2 Stunden versetzte Zeitstempel, was mich sehr verwirrte und diesen Thread startete.TIMESTAMP VON SELBST WIRD NICHT VON TIMEZONES BEEINTRÄCHTIGT gelten Zeitzonen nur beim Konvertieren in / von lesbaren Formularen.

Ich habe einen Zeitstempel (Sekunden von der Unix-Epoche) in der UTC-Zeitzone - keine Sommerzeit (Sommerzeit).

Ich möchte einen Zeitstempel (Sekunden aus der Unix-Zeit) in der Zeitzone "Europa / Prag", der die Sommerzeit verwendet.

Früher dachte ich, dass der Unix-Zeitstempel nicht an Zeitzonen gebunden ist, sondern sich nur auf das Konvertieren von Zeitstempeln in lesbare Formate auswirkt. Aber so sieht es nicht aus. Und je mehr ich versuche, es zu konvertieren (mithilfe von Calendar- und TimeZone-Klassen), desto verwirrter und verlorener werde ich.

Dieser Code funktioniert NICHT wie erwartet:

Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.setTimeInMillis(ts*1000);
cal.setTimeZone(TimeZone.getTimeZone("Europe/Prague"));
return cal.getTimeInMillis()/1000;

Antworten auf die Frage(4)

Ihre Antwort auf die Frage