Możesz ustawić strefę czasową na czas trwania zapytania, a zatem:
TZ=America/New_York date
Zwróć uwagę na spację między TZustawieniem a datepoleceniem. W rcpowłoce podobnej do Bourne'a i podobnej ustawia TZzmienną tylko dla wiersza poleceń. W innych powłok ( csh, tcsh, fish), zawsze można użyć envzamiast polecenia:
env TZ=America/New_York date
tl; dr
W systemach Linux. strefy czasowe są zdefiniowane w plikach w /usr/share/zoneinfokatalogu. Struktura ta jest często nazywana „bazą danych Olson”, aby uhonorować jej twórcę.
Reguły dla każdej strefy czasowej są zdefiniowane jako wiersze pliku tekstowego, które są następnie kompilowane do pliku binarnego. Tak skompilowane linie określają nazwę strefy; zakres danych i czas obowiązywania strefy; przesunięcie względem UTC dla czasu standardowego; oraz notacja określająca sposób przejścia na czas letni i zimowy, jeśli dotyczy.
Na przykład katalog „Ameryka” zawiera informacje wymagane dla Nowego Jorku w America/New_Yorkużytym pliku powyżej.
Uwaga: specyfikacja nieistniejącej strefy (nazwa pliku) jest dyskretnie ignorowana i podawane są czasy UTC. Na przykład zgłasza niepoprawny czas:
TZ="America/New York" date ### WRONG ###
Pojedyncza specyfikacja UNIX, wersja 3, znana jako SUSv3 lub POSIX-2001, zauważa, że dla przenośności ciąg znaków identyfikujący opis strefy czasowej powinien zaczynać się od dwukropka. Zatem możemy również napisać:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
Jako alternatywna metoda dla specyfikacji stref czasowych przy użyciu ścieżki do pliku opisu, SUSv3 opisuje model POSIX. W tym formacie ciąg jest zdefiniowany jako:
std offset [dst[offset][,start-date[/time],end-date[/time]]]
gdzie stdjest standardową nazwą komponentu i dsttą, która zachowuje czas letni. Każda nazwa składa się z trzech lub więcej znaków. offsetJest pozytywna dla stref czasowych na zachód od głównego południka i negatywne dla tych na wschód od południka. Przesunięcie jest dodawane do czasu lokalnego w celu uzyskania UTC (wcześniej znanego jako GMT). Pola starti endczas wskazują, kiedy występują przejścia standardowe / dzienne.
Na przykład we wschodnich Stanach Zjednoczonych standardowy czas jest o 5 godzin wcześniejszy niż UTC, a EST5EDTzamiast niego możemy podać America/New_York. Te alternatywy nie zawsze są jednak rozpoznawane, szczególnie w strefach poza Stanami Zjednoczonymi i najlepiej ich unikać.
HP-UX (system UNIX zgodny z SUSv3) używa reguł tekstowych /usr/lib/tztabi nazw POSIX, takich jak EST5EDT, CST6CDT, MST7MDT, PST8PDT. Plik zawiera wszystkie reguły historyczne dla każdej strefy czasowej, podobnie jak baza danych Olson.
UWAGA: Powinieneś być w stanie znaleźć wszystkich stref czasowych, sprawdzając następującym katalogu: /usr/share/zoneinfo.