È possibile impostare un fuso orario per la durata della query, quindi:
TZ=America/New_York date
Nota lo spazio tra l' TZ
impostazione e il date
comando. Nella rc
shell simile a Bourne e similare , imposta la TZ
variabile solo per la riga di comando. In altre shell ( csh
, tcsh
, fish
), si può sempre utilizzare il env
comando:
env TZ=America/New_York date
tl; dr
Su sistemi Linux. i fusi orari sono definiti nei file nella /usr/share/zoneinfo
directory. Questa struttura viene spesso definita "database Olson" per onorare il suo collaboratore fondatore.
Le regole per ciascun fuso orario sono definite come righe di file di testo che vengono quindi compilate in un file binario. Le linee così compilate, definiscono il nome della zona; un intervallo di dati e tempi durante i quali si applica la zona; un offset da UTC per l'ora standard; e la notazione per definire come avviene la transizione da e verso l'ora legale, se applicabile.
Ad esempio, la directory "America" contiene le informazioni necessarie per New York nel file America/New_York
utilizzato in precedenza.
Attenzione che la specifica di una zona inesistente (nome file) viene silenziosamente ignorata e vengono riportati i tempi UTC. Ad esempio, questo segnala un orario errato:
TZ="America/New York" date ### WRONG ###
La specifica UNIX singola, versione 3, nota come SUSv3 o POSIX-2001, osserva che per la portabilità, la stringa di caratteri che identifica la descrizione del fuso orario dovrebbe iniziare con un carattere due punti. Quindi, possiamo anche scrivere:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
Come metodo alternativo alla specifica dei fusi orari utilizzando un percorso per un file di descrizione, SUSv3 descrive il modello POSIX. In questo formato, una stringa è definita come:
std offset [dst[offset][,start-date[/time],end-date[/time]]]
dove std
è il nome del componente standard ed dst
è quello dell'ora legale. Ogni nome è composto da tre o più caratteri. Il offset
è positivo per i fusi orari ad ovest del primo meridiano e negativo per quelle ad est del meridiano. L'offset viene aggiunto all'ora locale per ottenere UTC (precedentemente noto come GMT). I campi start
e end
ora indicano quando si verificano le transizioni di luce diurna / standard.
Ad esempio, negli Stati Uniti orientali, l'ora standard è 5 ore prima dell'ora UTC e possiamo specificare EST5EDT
al posto di America/New_York
. Queste alternative non sono sempre riconosciute, tuttavia, soprattutto per le zone al di fuori degli Stati Uniti e sono meglio evitate.
HP-UX (un UNIX conforme a SUSv3) utilizza regole testuali /usr/lib/tztab
e nomi POSIX come EST5EDT, CST6CDT, MST7MDT, PST8PDT. Il file include tutte le regole storiche per ciascun fuso orario, simile al database Olson.
NOTA: Si dovrebbe essere in grado di trovare tutti i fusi orari ispezionando la directory seguente: /usr/share/zoneinfo
.