Daniel Spannbauer schrieb:
Hallo,
evtl. bin ich über einen Bug in der Konfiguration der Zeitzonen gestoßen...oder ich verstehe was nicht.
Meine Systemzeit wird in UTC gehalten (zum Testzeitpunkt 08:49). Stelle ich im Yast die Zeitzohne auf GMT+1 wird mir als lokale Zeit 07:49 angezeigt (erwartet hätte ich 09:49). Stelle ich GMT-1 ein krige ich 09:49 (erwartet hätte ich 07:49). Interpretiere ich GMT+1 falsch? Ich hatte da jetzt (wie der Name schon sagt) Greenwich Mean Time + 1 Stunde erwartet. hwclock -u, hwclock -r, hwclock -u -r......alles spuckt nur die lokale Zeit aus.....nur date -u spuckt UTC-Zeit.
Interpretiere ich als "GMT+1" falsch?
Normalerweise stellst du ja eine Zeitzone wie "Europe/Berlin" ein, und die Ortszeit wird aus der UTC-Zeit berechnet, indem die Regeln aus der entsprechenden Datei aus dem "timezone"-Paket verwendet werden, dass die Olson- (jetzt IANA-) Time Zone Data Base enthält. https://www.iana.org/time-zones Ich *vermute*, dass, wenn du in YaST eine Zeitzone wie "GMT+1" einstellst, einfach ein "TZ"-Eintrag im Environment erfolgt, und damit ein Verhalten wie zu Anfangszeiten der Computerei erfolgt. Man kann das einfach simulieren, wenn man den "date"-Befehl mit einer entsprechenden TZ-Environment-Variablen aufruft: # aktuelle UTC-Zeit martin@pc-martin:~> date -u Mi 2. Dez 09:06:06 UTC 2015 # Default-Ortszeit, hier "Europe/Berlin" martin@pc-martin:~> date Mi 2. Dez 10:06:14 CET 2015 # Environment "GMT+1" --> eine Stunde "westlich" von UTC martin@pc-martin:~> TZ=GMT+1 date Mi 2. Dez 08:06:21 GMT 2015 # Environment "GMT-1" --> eine Stunde "östlich" von UTC martin@pc-martin:~> TZ=GMT-1 date Mi 2. Dez 10:06:30 GMT 2015 Wenn ich mich recht erinnere, ist das Verhalten historisch bedingt. Als die Computer noch keinen batteriegepufferten RTC-Chip hatten, musste der Benutzer beim Booten die aktuelle Zeit eingeben, was normalerweise in Ortszeit passierte. Die Environment-Variable wurde benutzt, um aus der Ortszeit die entsprechende UTC-Zeit zu berechnen. Im Fall Deutschland wäre das aktuell 10:23 Ortszeit, und um daraus die UTC-Zeit zu berechnen, muss man eine 1 h *subtrahieren*, also muss die TZ-Variable im Environment lauten "GMT-1", "MEZ-1", oder "CET-1" Ursprünglich wurden die erste 3 Buchstaben nur als Kennung zur Anzeige verwendet, und der Wert gab den Offset an für den Fall, das keine Sommerzeit ist. Während der Sommerzeit konnten noch 3 Buchstaben angehängt werden, dann wurde eine zusätzliche Stunde Sommerzeit-Offset berücksichtigt. "CET-1CST" wäre dann ein gültiger wert für Deutschland, aber letzteres scheint mit der aktuellen glibc unter OS13.2 nicht mehr wie erwartet zu funktionieren. Wie gesagt, ich weiß nicht, ob YaST dieses verhalten beabsichtigt, aber so is es jedenfalls erklärlich.
Warum spuckt mir "hwclock" nicht die Zeit der Hardware-Uhr aus?
Mit hwclock kenne ich mich nicht aus, aber es müßte auch berücksichtigen, ob die Zeit im RTC-Chip tatsächlich auf UTC läuft oder (wie bei Dual Boot mit Windows üblich) auf Ortszeit mit einem zunächst unbekannten UTC-Offset. Damit meine ich, dass das Betriebssystem beim Booten nicht automatisch erkennen kann, ob die RTC auf UTC läuft, und wenn nicht, wie der Offset ist. Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org