Impostazione e lettura dell'ora

Nel sistema Debian, il fuso orario di sistema va determinato dal link simbolico /etc/localtime, che è un collegamento al file di fuso orario che descriva il fuso orario locale. I file di fuso orario sono tenuti in /usr/lib/zoneinfo. Altre distribuzioni Linux possono fare diversamente.

Un utente deve modificare il suo fuso orario privato impostando la variabile d'ambiente TZ; se non è impostata viene considerato il fuso orario di sistema. La sintassi della variabile TZ viene descritta nella pagina man di tzset.

Il comando date mostra la data e l'ora corrente[1]. Ad esempio:

$ date
Sun Jul 14 21:53:41 EET DST 1996
$
Questo corrisponde a Domenica, 14 Luglio 1996, circa le 10 meno 10 di sera nel fuso orario ``EET DST'' (che può stare per East European Time Daylight Savings Time). date può anche mostrare l'ora universale:
$ date -u
Sun Jul 14 18:53:42 UTC 1996
Sun Jul 14 18:53:42 UTC 1996
$
date si usa anche per impostare l'orologio software del kernel:
# date 07142157
Sun Jul 14 21:57:00 EET DST 1996
# date
Sun Jul 14 21:57:02 EET DST 1996
#
Vedere la pagina man di date per avere altri dettagli; la sintassi è un po' arcana. Solo root può impostare l'ora e, anche se ciascun utente può avere il proprio fuso orario, l'orologio è lo stesso per tutti.

date mostra o imposta soltanto l'orologio software; il comando clock sincronizza gli orologi hardware e software e viene usato all'avvio del sistema per leggere l'orologio hardware ed impostare quello software. Se dovete impostare entrambi gli orologi, prima impostate quello software usando date e poi quello hardware con clock -w.

L'opzione -u di clock dice che il clock hardware è in ora universale. Dovete usare correttamente l'opzione -u, altrimenti il vostro computer si confonderà.

L'orologio deve essere modificato con cautela, dato che molte parti di un sistema UNIX richiedono il suo funzionamento corretto; ad esempio, il daemon cron avvia dei comandi periodicamente e se modificate l'ora può confondersi e non sapere se deve avviare i comandi o no. Su un sistema UNIX di prima generazione, qualcuno ha impostato l'ora a venti anni nel futuro e cron voleva avviare tutti i comandi periodici dei venti anni tutti insieme. Le versioni correnti di cron possono gestire eventualità del genere, ma dovreste comunque stare attenti. Grandi salti in avanti o all'indietro sono più pericolosi di piccoli spostamenti.

Note

[1]

Attenzione al comando time, che non mostra l'ora corrente.