Lesen von Zeitzoneninformationen

8

Ich habe mir ein Buch über Systemprogrammierung angesehen. Es wurde erwähnt, eine Variable TZmit einer durch Doppelpunkte getrennten Liste zu verwenden, aus der verwendet wird /usr/share/zoneinfo. Wahrscheinlich ist das Buch etwas veraltet.

Ich habe mein Ubuntu-System überprüft

/usr/share/zoneinfo/Asia$ file Oral

gibt folgende Ausgabe

Mündlich: Zeitzonendaten, Version 2, 14 gmt-Zeitflags, 14 Standardzeitflags, keine Schaltsekunden, 51 Übergangszeiten, 14 Abkürzungszeichen

Ich habe versucht, es in vi zu öffnen, aber der Text konnte nicht gelesen werden. Ich habe auch versucht zu lesen, /etc/localtimeaber auch hier konnte es nicht gelesen werden.

  1. Wie kann ich den obigen Dateityp grundsätzlich lesen?

  2. Wo ist die TZ-Umgebungsvariable in Ubuntu 10.04 definiert?

registrierter Nutzer
quelle

Antworten:

10

Nun, es kommt darauf an, wofür Sie es lesen möchten.

Fast alle Programme müssen nur $TZin der Umgebung festgelegt oder /etc/localtimeals Link zu einer Zeitzonendatei verwendet werden. Die C-Bibliothek sorgt dann automatisch dafür, dass z. B. localtime()die richtige Zeit zurückgegeben wird.

1) Wie kann ich den obigen Dateityp grundsätzlich lesen?

zdump -v /etc/localtime zeigt Ihnen, was in den Dateien enthalten ist.

Dies sind kompilierte Dateien, die nicht für Menschen zum Lesen gedacht sind. apt-get source tzdatawird Ihnen die Quelle geben, aus der sie kommen.

2) Wo ist die Umgebungsvariable TZ in Ubuntu 10.04 definiert?

Es ist nicht standardmäßig eingestellt. Stattdessen /etc/localtimehandelt es sich um eine Kopie der relevanten zoneinfo-Datei und /etc/timezoneum den Namen dieser Zone.

Sie können sie mit sudo tzconfigoder über die GUI ändern .

Sie können es beispielsweise einstellen, ~/.envwenn Sie einen anderen persönlichen Standard für sich selbst wünschen.

Poolie
quelle
Das Erstellen ~/.envmit UTCin hat keine Auswirkung auf die lokale Zeitzone.
JFS
Heutzutage ist es tzselect
jiggunjer
tzselectist kein Ersatz für tzconfig: Es wählt nur eine Zeitzone und druckt sie auf stdout, ohne eine Konfiguration zu ändern . Der eigentliche moderne Ersatz ist dpkg-reconfigure tzdata.
Poolie