VOICE Homepage: http://de.os2voice.org | August 2001 [Inhaltsverzeichnis] [Vorherige Seite] [Nächste Seite] [Artikelverzeichnis] editor@os2voice.org

## Einstellung der Systemuhr auf UTC

Von Brian Crook © August 2001, Übersetzung: Manfred Agne

Der Grund, weswegen ich anfing, mich hierfür zu interessieren, war, daß ich ein paar Astronomie-Sachen machen wollte, und die Astronomen weltweit benutzen UTC als Grundlage. Also brauchte ich eine Lösung, die es mir erlauben würde, meine Systemuhr auf UTC laufen zu lassen, wobei meine Uhr trotzdem die lokale Zeit anzeigen sollte.

#### Die Zutaten

Unten ist ein Bild, das folgendes zeigt:

1. WorldClock mit den korrekten Zeiten

2. Die SYSBAR-Uhr mit 10 Stunden Abweichung

3. WorldClock-Einstellungen mit einem Häkchen bei der UTC-Option

4. TIME868-Fenster. Für mehr Information über Time868, hier klicken.

Ich habe auch drei verschiedene TZ-Variablen in der Config.Sys getestet. Alle, die eine etwas ausführlichere Erklärung der TZ Variablen möchten, bitte hier klicken

OK, das sind also die Zutaten, wie habe ich sie zusammengesetzt?

## Das Problem

Ich benutze TIME868 seit Jahren (was für ein schönes Bespiel für ein stabiles Programm!) und wollte nicht die Möglichkeit verlieren, meine Systemuhr immer genau zu halten.

Wenn man die Systemuhr auf UTC setzt, dann zeigt unglücklicherweise keine einzige Zeitanzeige die richtige Uhrzeit an (siehe die Sysbar-Uhr)..

Glücklicherweise berücksichtigt TIME868 die TZ-Variable in der Config.sys, und das erlaubt es uns, die Sache hinzubiegen.

Die erste TZ-Variable ist die 'normale': Das heißt, TIME868 liest sie, bestimmt den Offset, also -10, besorgt sich dann die korrekte Zeit, paßt sie an den Offset an, und setzt die Systemuhr.
Aufgrund der Sommerzeit wird die Uhr im Oktober eine Stunde vor- und im März eine Stunde zurückgestellt [In Australien, also auf der Südhalbkugel! - Anm.d.Übers.].

> `REM LOCAL TIME WITH LOCAL D/SAVING
> REM SET TZ=EST-10EDT,10,-1,0,7200,3,-1,0,7200,3600
> `

Die zweite Variable, die ich versucht habe, ist die für GMT, der Offset ist 0, mit den Sommerzeit-Parametern für Londoner Zeit. Das ging, aber meine Uhren lagen eine Stunde daneben.

> `REM GMT WITH GMT D/SAVING
> REM SET TZ=BST0BDT,3,-1,0,7200,10,-1,0,10800,3600
> `

Wie gesagt, das ging, aber meine Uhren lagen eine Stunde daneben, offensichtlich aufgrund der Sommerzeit. Was also tun? Nun, das Problem ist, daß die meisten Uhren einfach anzeigen, was die Systemuhr eben angibt. WorldClock ist da anders, die Einstellungen haben eine UTC-Option. Aber als ich das ausprobiert habe, dachte WorldClock, es sei in der Sommerzeit-Zone von London, wo es doch in Canberra sein sollte!

Die Lösung war die dritte TZ-Variable, und zwar mit der GMT-Korrektur zusammen mit meiner LOKALEN Sommerzeit. Nun heißt es zwar nirgendwo, man könne eine bestimmte Zeitzone mit der Sommerzeit-Einstellung einer anderen Zeitzone kombinieren, aber ich dachte, ich müßte es einfach einmal ausprobieren. Nach dem Neustart (das System muß die neue TZ-Variable auslesen) ging meine Uhr immer noch eine Stunde falsch. Dann tat TIME868 seine Arbeit, und korrigierte die 3600 Sekunden (siehe oben).

> `REM GMT WITH LOCAL D/SAVING
> SET TZ=BST0BDT,10,-1,0,7200,3,-1,0,7200,3600
> `

`
`

## Das Ergebnis

Ich habe jetzt meine Systemuhr mit UTC laufen (überwacht von TIME868), und wenn ich jetzt ein Astronomie-Programm starte, ist alles in Ordnung.

Ich habe eine Zeitanzeige (WorldClock), die mir die richtige lokale Zeit anzeigt.

Man beachte, daß auf der WorldClock-Anzeige die Zeit für London eine Stunde von UTC abweicht, wegen der Sommerzeit. Die entsprechende Zurückstellung macht WorldClock automatisch.

Mit diesen Einstellungen zeigt kaum eine oder keine andere Uhr die richtige Zeit an.

Ich habe die Einstellung noch nicht unter Xfree86 getestet, aber ich bin mir ziemlich sicher, daß es Programme gibt, die mit einer auf UTC gesetzten Systemuhr zurechtkommen.

Beachten Sie bitte, daß es zu Problemen mit E-Mail- und News-Klienten kommen kann, wenn diese UTC nicht unterstützen. Ein Symptom dafür wäre die Weigerung des Servers, Ihre Nachricht anzunehmen.

Angeblich hat auch eCS eine Uhr, die UTC korrekt interpretiert, aber ich habe sie noch nicht gesehen.

TIME868: Das folgende ist ein Auszug aus der Hilfedatei von TIME868. Abgesehen davon, daß es die stabilste und robusteste Anwendung ist, die ich habe, enthält sie auch eine schöne Erklärung der TZ-Variablen:

Verwenden Sie TIME868, um Ihre Systemuhr mittels des Zeitprotokolls zu setzen. Dieses Protokoll erlaubt eine Genauigkeit von plus/minus einer Sekunde. Eine Anzahl von Merkmalen unterstützt verschiedene Betriebsarten für permanente Verbindungen oder Einwahlverbindungen zu Zeit-Servern.

TIME868 arbeitet auch als Zeit-Server für die Redistribution genauer Zeit an lokale Client-Rechner.

TIME868 stellt eine Grafik der gemachten Korrekturen für die visuelle Kontrolle zur Verfügung.

Verwandte Informationen:

- Auswahl eines Zeit-Servers
- Einrichten des Programmes
- TZ-Umgebungsvariable
- Dialogfelder
- Einen Zeit-Server zur Verfügung stellen
- USNO-Zeitserver
- National Institute of Standards and Technology

TZ: Ich vermute, die meisten Leute verwenden eine TZ-Variable (Time Zone), aber haben nie einen Grund, sie zu ändern. Für die, die mehr davon verstehen möchten: die beste Erklärung, die ich gefunden habe, befindet sich in der Hilfefunktion von Worldclock. Für die, die WorldClock nicht haben, hier die komplette TZ-Variable:

> `SET TZ=STD[+-]nDST[,DSTm,DSTw,DSTd,DSTt,STDm,STDw,STDd,STDt,shift]`

Man beachte, daß diese Variable zwei Teile hat: Zunächst den Teil bis und inklusive nDST , dann der Rest. Einige Systeme arbeiten einfach mit dem ersten Teil und ignorieren den zweiten Teil für die Sommerzeit.

> `STD` Standard-Zeit (3 Zeichen)
> `n` Differenz zu UTC(GMT) in Stunden.+ve westlich vom Nullmeridian, -ve östlich vom Nullmeridian
> `DST` "Daylight saving descriptor", Sommerzeit-Beschreibung
> `DSTm` Monat, in dem die Sommerzeit beginnt
> `DSTw` Woche, in der die Sommerzeit beginnt
> `DSTd` Tag, an dem die die Sommerzeit beginnt (0=Sonntag)
> `STDm` Monat, in dem die Sommerzeit endet
> `STDw` Woche, in der die Sommerzeit endet
> `STDd` Tag, an dem die die Sommerzeit endet (0=Sonntag)
> `STDt` Sommerzeit-Verschiebung in Sekunden
> `shift` Größe der Zeitverschiebung in Sekunden.

Achtung: Wenn die TZ-Variable geändert wird, muß das System neu gestartet werden, um die Änderung zu aktivieren.

Quellenverzeichnis: Brian Crook's Website - http://www.webone.com.au/~bnc Worldclock - http://www.os2world.com/goran/clock.htm SYSBAR - http://hobbes.nmsu.edu/pub/os2/util/wps/sbr2_017.zip Time868_ZIP - http://hobbes.nmsu.edu/pub/os2/apps/internet/time/time868f.zip

[Artikelverzeichnis]
editor@os2voice.org
[Vorherige Seite] [Inhaltsverzeichnis] [Nächste Seite]
VOICE Homepage: http://de.os2voice.org