Tobias: mysql Sommer-/Winterzeit

Beitrag lesen

Hi,
 danke erst mal für diese ausfürliche Antwort.

Das würde ich nicht sagen. Rechneruhren können auch ganz schön falsch gehen. Und die Definition der "richtigen Uhrzeit" wäre auch mal interessant. :)

Also die Uhr auf dem Server läuft ziemlich exakt und die Zeitzone ist unsere hier (mitteleuropäische Zeit).

Aber wenn jemand in der Sommerzeit lebt und einen Termin in der Winterzeit eingibt, oder daran erinnert werden will, dann gibt es Überschneidungsprobleme.

Also doch Probleme?

Auf der Erde definiert sich ein Zeitpunkt nicht nur durch die Angabe von Datum und Uhrzeit, wie im DATETIME-Feld von MySQL möglich, sondern immer auch durch die Angabe einer Zeitzone, in der diese Zeitpunktangabe gelten soll. Der 1.1.2006 0:00 Uhr findet bekanntlich auf der Welt reihum zu jeder Stunde statt. Wer sich also um 0:00 Uhr verabredet zum Anstoßen mit Sekt, der sollte unbedingt die Zeitzone mitteilen.

Das Programm wird nur innerhalb Deutschlands genutzt (eventuell später auch in Österreich, aber das sollte ja auch nichts ausmachen).

In manchen Kontexten ist die Zeitzone implizit definiert, weil sämtliche Daten sich nur auf eine einzige Zeitzone beziehen. Aber bereits mit der Problematik "Sommerzeit" wird's interessant, denn alle Länder stellen eigentlich nicht an der Uhrzeit, sondern wechseln die Zeitzone von MEZ (UTC+01:00) auf MESZ (UTC+02:00) und zurück. Und mal ganz abgesehen davon gibt's außerdem ja das Problem, dass Bewohner einer Zeitzone im Urlaub diese auch gerne mal verlassen - dank Internet aber auch unterwegs ihren Erinnerungskalender dabeihaben können.

Ja schon, aber das Programm verwaltet Lieferungsdaten einer Firma, die fest an einem Platz steht und nicht in Urlaub geht und so *g*.
 In diesem Fall ist auch ziemlich sicher, dass das Programm nicht aus dem Ausland bedient wird.

Eine Internetanwendung kann sich also nicht darauf verlassen, dass der Benutzer sich schon irgendwie selbst seine Uhrzeit zurechtschnitzt, weil der Server sonst ständig die eigene Uhr umstellen müßte - was für einen oder mehrere Benutzer in der gleichen Zeitzone noch funktionieren würde, für mehrere Benutzer in unterschiedlichen Zeitzonen aber nicht mehr geht.

Aber ich verlasse mich darauf, dass das Datum immer in MEZ (oder halt MESZ, wenns in dieser Zeit liegt) angegeben wird. Darauf wird auch hingewiesen.

Deshalb: Die Zeitpunkte immer in UTC (auch bekannt als "Greenwich-Zeit") abspeichern, und dabei berücksichtigen, in welcher Zeitzone dieser Zeitpunkt gelten soll. 12:00 Mittags im sommerlichen Deutschland ist eben nur 10:00 UTC, im Winter ist es 11:00 UTC. Wenn die Serveruhr ebenfalls auf UTC läuft (und zur Zeitanzeige die lokale Zeitzone des Admins draufrechnet), wird der Server pünktlich um 10:00 UTC "klingeln" können, und die angegebene Uhrzeit auch wieder in "12:00 MESZ" umrechnen können.

Muss ich das, wenn oben beschriebenes Zutrifft, wirklich machen?

Das ist andererseits natürlich etwas nervig. Wenn man zuhause plant, um Urlaub um 8:00 Uhr geweckt zu werden, man kennt aber die Zeitzone des Ortes nicht, wird man eben um 8:00 Uhr "Zuhause-Zeit" geweckt - das kann nachts um 2 Uhr sein, oder nachmittags um 15:00. Mindestens müßte das Programm erkennen, dass man auch zur Winterzeit die Uhrzeiten im Sommer tatsächlich als Sommerzeit meint - und entsprechend die Stunde Zeitverschiebung berücksichtigen.

Ist das wirklich nötig, wenn ich immer in der gleichen Zeitzone bin (die Firma wird immer nur in Deutschland oder Österreich arbeiten, die arbeiten nicht im Urlaub).

Danke nochmal,
Tobias