Sie können eine Zeitzone für die Dauer der Abfrage festlegen.
TZ=America/New_York date
Beachten Sie das Leerzeichen zwischen der TZ
Einstellung und dem date
Befehl. In einer Bourne-ähnlichen und einer rc
ähnlichen Shell wird die TZ
Variable nur für die Befehlszeile festgelegt. In anderen Schalen ( csh
, tcsh
, fish
), können Sie immer die Verwendung env
Befehl statt:
env TZ=America/New_York date
tl; dr
Auf Linux-Systemen. Zeitzonen werden in Dateien im /usr/share/zoneinfo
Verzeichnis definiert. Diese Struktur wird oft als "Olson-Datenbank" bezeichnet, um den Gründungsbeitrag zu ehren.
Die Regeln für jede Zeitzone sind als Textdateizeilen definiert, die dann in eine Binärdatei kompiliert werden. Die so kompilierten Zeilen definieren den Zonennamen. einen Daten- und Zeitbereich, für den die Zone gilt; ein Versatz von UTC für die Standardzeit; und die Notation zum Definieren, wie der Übergang von und zur Sommerzeit erfolgt, falls zutreffend.
Beispielsweise enthält das Verzeichnis "Amerika" die erforderlichen Informationen für New York in der oben verwendeten Datei America/New_York
.
Beachten Sie, dass die Angabe einer nicht vorhandenen Zone (Dateiname) unbemerkt ignoriert und UTC-Zeiten gemeldet werden. Beispielsweise meldet dies eine falsche Zeit:
TZ="America/New York" date ### WRONG ###
In der Single UNIX-Spezifikation, Version 3, bekannt als SUSv3 oder POSIX-2001, wird darauf hingewiesen, dass aus Gründen der Portabilität die Zeichenfolge, die die Beschreibung der Zeitzone angibt, mit einem Doppelpunkt beginnen sollte. So können wir auch schreiben:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
Als alternative Methode zur Angabe von Zeitzonen unter Verwendung eines Pfadnamens zu einer Beschreibungsdatei beschreibt SUSv3 das POSIX-Modell. In diesem Format ist eine Zeichenfolge wie folgt definiert:
std offset [dst[offset][,start-date[/time],end-date[/time]]]
Wo std
ist der Name der Standardkomponente und wo dst
ist die Sommerzeit? Jeder Name besteht aus drei oder mehr Zeichen. Das offset
ist positiv für Zeitzonen westlich des Nullmeridians und negativ für jene östlich des Nullmeridians. Der Offset wird zur Ortszeit addiert, um die UTC (früher als GMT bekannt) zu erhalten. Die Felder start
und end
Zeit geben an, wann die Standard- / Tageslichtübergänge auftreten.
In den östlichen USA liegt die Standardzeit beispielsweise 5 Stunden vor UTC, und wir können EST5EDT
anstelle von angeben America/New_York
. Diese Alternativen werden jedoch insbesondere für Gebiete außerhalb der USA nicht immer anerkannt und sollten vermieden werden.
HP-UX (ein SUSv3-kompatibles UNIX) verwendet Textregeln in /usr/lib/tztab
und die POSIX-Namen wie EST5EDT, CST6CDT, MST7MDT, PST8PDT. Die Datei enthält alle historischen Regeln für jede Zeitzone, ähnlich der Olson-Datenbank.
HINWEIS: Sie sollten in der Lage sein , alle der Zeitzonen zu finden , indem Sie das folgende Verzeichnis Inspektion: /usr/share/zoneinfo
.