Tempo (Unix)
Nei sistemi operativi Unix e Unix-like il tempo viene rappresentato come offset in secondi rispetto alla mezzanotte (UTC) del 1º gennaio 1970 (detta epoca).
Ad esempio, il 9 settembre 2001 alle ore 03:46:40 CET il valore di tale offset era pari ad un miliardo, indicando appunto che in quell'istante erano trascorsi un miliardo di secondi rispetto all'epoca.
Per rappresentare tale offset viene usato il tipo time_t.
Questo tipo di rappresentazione, oltre che ad essere compatta, è indipendente dai fusi orari, ed è quindi direttamente confrontabile anche tra calcolatori situati a grandi distanze geografiche tra loro, ed evita di dover effettuare aggiustamenti nel caso ad esempio di dati trasmessi da un fuso orario all'altro.
Lo svantaggio è che per averne una rappresentazione sotto forma di data e ora locali è necessario effettuare una conversione; il sistema operativo offre allo scopo delle funzioni che consentono di effettuarle in entrambe le direzioni.
Anno 2038 e bit overflow
Nei calcolatori e nei sistemi operativi a 32 bit il tipo time_t
è comunemente un tipo di dato numerico intero a 32 bit con segno. Il 19 gennaio 2038 alle ore 03:14:08 (GMT) il numero di secondi trascorsi dall'epoca raggiungerà il valore di 231, che è al di fuori dei valori rappresentabili da tale tipo di dato.
Tali calcolatori e sistemi operativi potranno quindi riscontrare problemi e malfunzionamenti, non essendo più in grado di memorizzare correttamente il valore che indica la data corrente.
Curiosità
Alle ore 23:31:30 del 13 febbraio 2009 (UTC), il Tempo Unix ha raggiunto la cifra '1234567890'. Si sono tenuti party e festeggiamenti vari in tutto il mondo per celebrare il fatidico evento.[1][2][3]
Note
- ^ 1234567890day.com is the central coordinating site for 1234567890 day celebrations.
- ^ Dylan Tweney, Unix Lovers to Party Like It's 1234567890, Wired News, 12 febbraio 2009.
- ^ Murad Ahmed, At the third stroke, the Unix time will be 1234567890, Times Online, 13 febbraio 2009.
Collegamenti esterni