Zeitumstellung
« | 28 Oct 2018 | »Ah, die Uhr hat sich wieder 3 mal zurückgestellt.
… muss ich zum Glück nicht mehr an Tagen wie heute sagen. Denn die Umstellung von Sommer- auf Winterzeit ist wieder einmal fällig.
Als ich damals vor 15-20 Jahren 3 Windows-Installationen auf einem PC parallel
installiert hatte und mit
VAMOS
hin- und her bootete, stellte jede Windows-Installation die Uhr vor oder
zurück. Damit lief die Uhr dann bis zu 2 Stunden falsch.
Ein Umstellung erfolgte durch mich selbst manuell unter
DOS bzw.
Windows 3.x
, und dann führten
Windows 9x und danach
Windows NT das
gleiche nochmals automatisch durch.
(Anmerkung: Damals war ich hauptsächlich in DOS unterwegs und nutzte Windows
nur für Office Anwendungen)
Und NTP … was ist das?
Inzwischen ist die Zeitumstellung für mich auch “programmatisch” voll und ganz integriert. Orientiert am Ausgabeformat “yyyy-mm-ddThh:mm:ss+hh:mm” nach dem ISO 8601 Standard, programmiere ich immer in globaler Zeit und nur die Anzeige wird lokal aufbereitet.
Linux war schon von Anfang an so vernünftig und stellte die Uhr des PCs auf die UTC Weltzeit und rechnete nur den Offset der eingestellten Zeitzone für den Benutzer dazu.
Windows ist hier auf dem Stand von 1980/1990 geblieben und schreibt die lokale Zeit in die PC-Uhr … weil … DOS machte das ja auch so. Und genau deshalb muss sich Windows je nach Zeitzone zweimal im Jahr selbst daran erinnern, die interne Uhr vor oder zurück zu stellen.
… Tja, und wenn man Windows n-mal installiert hat, hat man am Ende n-Umstellungen.
Heute wird das zum Glück kompensiert, weil nach so einer Umstellung das Internet befragt wird und so wieder alles in Ordnung kommt.
Doch dafür gibt es auch schon seit 15 Jahren eine Lösung:
Man erzeugt im Registry-Key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
den DWORD
Eintrag RealTimeIsUniversal
mit dem Wert 1
.
Nach einem Neustart verhält sich Windows ähnlich wie Linux. Es bewertet die interne Uhr als UTC und addiert/subtrahiert den Offset der Zeitzone automatisch … Perfekt!
Doch bis vor ein paar Jahren trat dann ein anderer Bug auf: Windows konnte in diesem Zustand die Uhr des PCs nicht mehr verändern. Wollte man also die Uhr bewusst verstellen (oder mit dem Internet synchronisieren), war das nur temporär (also ein weiterer Offset), der mit dem nächsten Neustart wieder verloren ging.
Dem Himmel sei Dank hat es Microsoft im Jahr 2016 geschafft, seine Betriebssysteme so zu fixen, dass die Uhr im UTC Modus läuft und auch verstellt werden kann.
Fazit
Also Leute… das hättet ihr vor 20 Jahren (Windows 98/NT 4) aber auch schon hinbekommen können.
Nachtrag
Was hab’ ich mich vor 6 - 7 Jahren abgemüht, alle Windows-APIs
durchzuprobieren um die Uhr im UTC-Modus zu manipulieren.
Ich dachte damals, dass das nur ein dummer UI Bug sein kann, und probierte
von
SetSystemTime
bis hin zu
WMI Win32_OperatingSystem SetDateTime
alle erdenklichen Kombinationen von Accounts und Privilegien durch.
… alles ohne Erfolg … denn der Bug saß tief im Windows Kern.
Da frage ich mich dann immer: Ist das außer mir keinem auf der Welt sonst noch aufgefallen? Das hätte doch beim Qualitätstest schon aufschlagen müssen!