Moin!
Ich denke das kommt auf deinen Rechner an auf dem die Datenbank läuft.
Denn die Uhrzeit des Rechners ist ausschlaggebend für die richtige Uhrzeit.
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. :)
Insofern sollte er meiner Meinung nach alles richtig machen, da ja dein Rechner auch immer Winter und Sommerzeit automatisch ändert.
Aber wenn jemand in der Sommerzeit lebt und einen Termin in der Winterzeit eingibt, oder daran erinnert werden will, dann gibt es Überschneidungsprobleme.
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.
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.
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.
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.
Wenn der Benutzer den Kalender aus einer anderen Zeitzone (z.B. Moskau, UTC+04:00) abfragt, würde es bei ihm erst um 14:00 lokaler Zeit "klingeln".
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.
- Sven Rautenberg
My sssignature, my preciousssss!