Jahreszahlformat - RTC Winterzeit-Sommerzeit

peter_de:
ich habe eine Frage zum Wert der Variablen tzHours.
Ist der Wert für Deutschland immer auf 1 (für UTC+1) zu setzen oder wird bei Sommerzeit der Wert auf 2 (für UTC+2) gestellt?

UTC-Zeit ist UTC, also tzHours=0
Winterzeit ist UTC+1, also tzHours=1
Sommerzeit ist UTC+2, also tzHours=2

Wenn Du prüfen möchtest, ob eine bestimmte Zeitangabe in die Sommerzeit fällt, nimmst Du die Uhrzeitangabe und die Zeitzone in der die Uhr läuft, und fragst ab. Mit der Zeit, die auf der Uhr angezeigt wird und der Zeitzone, in der die Uhr läuft. Also bei einer auf Winterzeit laufenden Uhr mit tzHours=1 und bei einer auf Sommerzeit umgestellten Uhr mit tzHours=2.

rudirabbit:
Ich empfange über eine serielle Schnittstelle ein Datentelegramm welches auch die Uhrzeit im Unix-Format enthält.
Diese Uhrzeit beinhaltet bereits die Sommer- Winterzeitumschaltung. Zur Winterzeit erhalte ich also UTC+1 und zur Sommerzeit UTC+2.

Eine Unix-Uhrzeit läuft immer auf GMT. Auf Rechnern mit Betriebssystem (PC, Server) wird diese Zeit dann ggf. in "lokal Time" umgerechnet.

Wenn Du eine Uhrzeit hast, mit Zeitzonenverschiebung und sogar Sommerzeitumschaltung, dann ist das keine Unix-Time, sondern dann ist es eine Localtime.

Ich weis aber erst mal nicht ob gerade Sommerzeit oder Winterzeit ist.
Das will ich aber wissen weil eine Funktin zur Berechnung des Sonnenstandes immer UTC+0 benötigt.

Bei einer Uhr, von der Du nicht weißt, ob sie auf Sommer- oder auf Winterzeit (UTC+2 oder UTC+1) eingestellt ist, gibt es bei der Rückstellung im Herbst immer eine Phase von einer Stunde, bei der Du nicht genau sagen kannst, welche Zeit vorliegt. Da es bei der Zeitumstellung im Herbst die Stunde zwischen 02:00 und 03:00 Uhr zweimal gibt, kann Dir bei einer solchen Zeitangabe niemand sagen, ob Du in der 2A Stunde (Sommerzeit) oder der 2B Stunde (Winterzeit) bist, wenn Dir keine Informationen darüber vorliegen, um was für eine Zeitangabe es sich handelt.

Es sei denn, Du wertest die Stetigkeit der Zeit Deiner Uhr aus: Wenn sie am Umstellungstag Ende Oktober noch nicht eine Stunde rückwärts gesprungen ist, bist Du noch auf Sommerzeit UTC+2, und nachdem die Uhr eine Stunde zurückgesprungen ist, bist Du auf Winterzeit UTC+1-

Aber diese eine Stunde ist wahrscheinlich für eine Anwendung zur Berechnung des Sonnenstands relativ irrelevant: Ende Oktober nachts zwischen 2 und 3 befindet sich die Sonne in Mitteleuropa sowieso immer unterhalb des Horizonts. Und zwar sowohl nach Sommerzeit wie auch nach Winterzeit.

Hierzu verstelle ich die interne Uhr temporär um eine oder zwei Stunden nach hinten.
Dann wird der die Sonnenposition (mit UTC+0) ermittelt und die Uhr wieder eine oder zwei Stunden nach vorne gestellt.

Klingt ziemlich umständlich. Astronomische Formeln beziehen sich doch immer auf UTC-Zeiten, da kannst Du die Uhrzeit doch gleich auf UTC laufen lassen.