Come si usa
- 1In cima allo strumento scorre il tempo Unix attuale. Fai clic su «Copia» per copiarlo in secondi o in millisecondi.
- 2Incolla un timestamp in «Da timestamp a data». L’unità viene riconosciuta dal numero di cifre; se la stima è sbagliata, scegli tu secondi, millisecondi, microsecondi o nanosecondi.
- 3Puoi anche incollare una data, come
2024-05-01T12:00:00ZoWed, 01 May 2024 12:00:00 GMT, per vederla in tutti i formati e come timestamp. - 4Per la conversione inversa, scegli data e ora in «Da data a timestamp», seleziona ora locale o UTC e copia il risultato.
Cos’è il tempo Unix?
Il tempo Unix – chiamato anche epoch time o timestamp POSIX – conta i secondi trascorsi dalle 00:00:00 UTC del 1º gennaio 1970, la cosiddetta epoca Unix. Il conteggio ha superato 1.700.000.000 il 14 novembre 2023 alle 22:13:20 UTC. Gli istanti precedenti al 1970 sono numeri negativi.
Un timestamp è un solo numero, indipendente da fusi orari, calendari e formati di data, quindi è facile da memorizzare, ordinare e confrontare. Per questo database, API, file di log, file system e JSON Web Token lo usano ovunque.
Secondi, millisecondi, microsecondi o nanosecondi?
Il tempo Unix classico conta i secondi e oggi i valori hanno 10 cifre. Date.now() di JavaScript e System.currentTimeMillis() di Java restituiscono millisecondi (13 cifre), alcuni database memorizzano microsecondi (16 cifre), mentre UnixNano() di Go e time.time_ns() di Python restituiscono nanosecondi (19 cifre).
Il convertitore deduce l’unità dalla lunghezza del numero: fino a 11 cifre assume i secondi, da 12 a 14 cifre i millisecondi, da 15 a 17 i microsecondi e da 18 in su i nanosecondi. Sono ambigui solo i valori in millisecondi molto piccoli, anteriori a marzo 1973: in quel caso scegli tu l’unità.
Fusi orari, anno 2038 e secondi intercalari
Un timestamp indica lo stesso istante in tutto il mondo; solo la sua visualizzazione dipende dal fuso orario. 1.700.000.000 corrisponde alle 22:13:20 a Londra, alle 23:13:20 a Roma e alle 17:13:20 a New York. Memorizza e scambia i dati in UTC e converti nell’ora locale solo quando li mostri alle persone.
I sistemi che memorizzano il tempo Unix in un intero a 32 bit con segno arrivano al limite alle 03:14:07 UTC del 19 gennaio 2038, quando il contatore va in overflow e torna al 1901: è il problema dell’anno 2038. I sistemi attuali usano 64 bit, che bastano per miliardi di anni.
Il tempo Unix ignora i secondi intercalari: ogni giorno conta esattamente 86.400 secondi. Quando a UTC viene aggiunto un secondo intercalare, l’orologio Unix ripete un secondo o lo distribuisce nel tempo, quindi la differenza tra due timestamp può risultare più corta dei secondi intercalari compresi tra i due: 27 dal 1972.
Domande frequenti
Come ottengo il timestamp Unix attuale?
È mostrato in cima a questa pagina. Nel codice, usa Math.floor(Date.now() / 1000) in JavaScript, time.time() in Python, time() in PHP, DateTimeOffset.UtcNow.ToUnixTimeSeconds() in C# oppure date +%s in un terminale Linux o macOS.
Un timestamp Unix è in secondi o in millisecondi?
Tradizionalmente in secondi, ma molte piattaforme, tra cui JavaScript e Java, usano i millisecondi. Conta le cifre: un timestamp attuale ha 10 cifre in secondi e 13 in millisecondi. Questo convertitore riconosce l’unità e ti dice quale ha assunto.
Il tempo Unix dipende dal fuso orario?
No. Si conta sempre dalla mezzanotte UTC del 1º gennaio 1970, quindi nello stesso istante è lo stesso numero ovunque. Il fuso orario conta solo quando trasformi il numero in una data del calendario e in un orario.
Cosa succede al tempo Unix nel 2038?
Alle 03:14:07 UTC del 19 gennaio 2038 il tempo Unix supera 2.147.483.647, il valore più grande che un intero a 32 bit con segno può contenere. I software che memorizzano ancora il tempo in 32 bit ripartiranno da dicembre 1901. I sistemi operativi, i database e i linguaggi moderni usano il tempo a 64 bit e non sono interessati dal problema.
Come converto un timestamp Unix in Excel o Fogli Google?
Per i secondi usa =A1/86400+DATA(1970;1;1) – nelle versioni in inglese =A1/86400+DATE(1970,1,1) – e formatta la cella come data e ora; per i millisecondi dividi invece per 86.400.000. Il risultato è in UTC, quindi aggiungi o sottrai la tua differenza da UTC in ore divisa per 24.