Convertitore di Timestamp Unix in Data: Supporto per Formati a 12/24 Ore
Converti i timestamp Unix in date e orari leggibili dall'uomo. Scegli tra i formati di ora a 12 ore e a 24 ore con questo semplice strumento di conversione facile da usare.
Convertitore di timestamp Unix
Il timestamp Unix è il numero di secondi trascorsi dal 1 gennaio 1970 (UTC)
Data e Ora Convertite
Cos'è un Timestamp Unix?
Un timestamp Unix è il numero di secondi trascorsi dal 1 gennaio 1970 (mezzanotte UTC/GMT), senza contare i secondi bisestili. È ampiamente utilizzato nei sistemi Unix e nei linguaggi di programmazione per calcoli di data e ora.
Documentazione
Convertitore da timestamp Unix a data
Un timestamp Unix è un numero che rappresenta un preciso istante nel tempo. Conta i secondi interi trascorsi dalla mezzanotte UTC del 1º gennaio 1970, un momento chiamato epoca Unix. Questo strumento converte un timestamp Unix in una data di calendario e un'ora, mostrate nel formato a 24 ore o a 12 ore. Il risultato è mostrato nel fuso orario impostato sul dispositivo che esegue il convertitore.
Come convertire un timestamp Unix in una data
La formula di base è semplice:
data = epoca Unix (1970-01-01, 00:00:00 UTC) + timestamp (in secondi)
Per trasformare un numero grezzo di secondi in una data, si aggiunge quel numero di secondi al 1º gennaio 1970. Il risultato deve poi essere suddiviso in anno, mese, giorno, ora, minuto e secondo. Questa suddivisione è la parte più difficile, perché deve tenere conto degli anni bisestili, che aggiungono un giorno a febbraio, e del fatto che i mesi hanno durate diverse. La maggior parte dei linguaggi di programmazione dispone di una funzione di gestione delle date integrata che esegue automaticamente questa operazione, così nessuno deve calcolarla passo dopo passo.
Esempio svolto
Prendiamo il timestamp 1609459200.
- Dividilo per il numero di secondi in un giorno: 1.609.459.200 ÷ 86.400 = 18.628 giorni.
- Conta 18.628 giorni a partire dal 1º gennaio 1970, tenendo conto degli anni bisestili lungo il percorso.
- Il conteggio arriva al 1º gennaio 2021.
Quindi 1609459200 si converte in venerdì 1º gennaio 2021, ore 00:00:00 UTC. Il giorno della settimana, venerdì, deriva dallo stesso conteggio dei giorni. Su un dispositivo impostato su un fuso orario diverso, il convertitore mostra lo stesso istante all'ora locale. A New York (UTC−5), per esempio, è giovedì 31 dicembre 2020, ore 19:00:00.
Un timestamp può anche essere negativo, indicando una data precedente al 1970. Per esempio, -86400 corrisponde esattamente a un giorno prima dell'epoca: 31 dicembre 1969, 00:00:00 UTC.
Precisione dei timestamp: secondi, millisecondi e microsecondi
Non tutti i sistemi misurano il tempo in secondi. Questo convertitore esamina il numero di cifre di un timestamp e ne stima la precisione:
| Cifre | Precisione | Esempio |
|---|---|---|
| 10 | Secondi | 1609459200 |
| 13 | Millisecondi | 1609459200000 |
| 16 | Microsecondi | 1609459200000000 |
Un timestamp negativo ha una cifra in più per il segno meno, quindi -1609459200 (11 cifre) viene comunque letto come secondi. Qualsiasi altro numero di cifre è trattato come semplici secondi. I valori in millisecondi e microsecondi vengono divisi per 1.000 o 1.000.000 prima di applicare la formula dei secondi indicata sopra.
Formato dell'ora a 12 ore e a 24 ore
Il convertitore offre due modi per visualizzare l'ora del giorno.
- Il formato a 24 ore conta le ore da 0 a 23, senza indicazione AM o PM. Negli Stati Uniti è spesso chiamato ora militare. Le 3:00 del pomeriggio si scrivono 15:00.
- Il formato a 12 ore conta le ore da 1 a 12, aggiungendo AM per il periodo dalla mezzanotte a mezzogiorno e PM per il periodo da mezzogiorno a mezzanotte. Le 15:00 nel formato a 24 ore diventano 15:00.
Il formato a 24 ore è lo standard nella maggior parte dell'Europa, dell'America Latina e dell'Asia, nonché negli ambiti scientifico, militare e medico di tutto il mondo. Il formato a 12 ore resta comune nell'uso quotidiano negli Stati Uniti, in Canada e in alcuni altri Paesi anglofoni.
Intervallo di date supportato
Questo convertitore accetta qualsiasi timestamp da -62135596800 a 253402300799, dopo la conversione di millisecondi o microsecondi in secondi. Ciò copre ogni data dal 1º gennaio dell'anno 1 al 31 dicembre 9999 (UTC). I timestamp al di fuori di questo intervallo vengono rifiutati perché troppo grandi o troppo piccoli per essere convertiti.
Il problema dell'anno 2038
Molti sistemi informatici più vecchi memorizzano un timestamp Unix come intero con segno a 32 bit, che può contare solo fino a 2.147.483.647. Quel numero di secondi dopo l'epoca cade il 19 gennaio 2038, alle 03:14:07 UTC. Oltre quell'istante, un sistema a 32 bit non aggiornato torna indietro a un numero negativo e legge la data come se fosse nel 1901 anziché nel 2038. Questo è noto come problema dell'anno 2038. Non riguarda tutti i sistemi: i software moderni che memorizzano i timestamp come numeri a 64 bit, o come numeri ordinari come fa JavaScript, possono rappresentare date a migliaia di anni oltre il 2038 senza alcun overflow. Una data JavaScript può contenere fino a 100.000.000 giorni prima o dopo l'epoca, il che arriva fino all'anno 275760.
Usi comuni dei timestamp Unix
I timestamp Unix sono utilizzati in tutto il campo dell'informatica perché sono compatti e facili da confrontare o ordinare:
- Le righe dei database li usano per registrare quando un record è stato creato o modificato l'ultima volta.
- I server web li usano nelle intestazioni HTTP e nei cookie per controllare la memorizzazione nella cache e la scadenza.
- I file di log registrano ogni evento con un timestamp, così le voci possono essere disposte in ordine.
- Git e altri sistemi di controllo versione registrano in questo modo gli orari dei commit.
- Le API web li usano per indicare quando i dati sono stati generati o aggiornati l'ultima volta.
Domande frequenti
Che cos'è l'epoca Unix? L'epoca Unix è la mezzanotte UTC del 1º gennaio 1970. È il punto zero da cui vengono conteggiati tutti i timestamp Unix.
Un timestamp Unix include i secondi intercalari? No. Il tempo Unix conta esattamente 86.400 secondi al giorno e ignora i secondi intercalari che vengono aggiunti di tanto in tanto all'UTC, perciò si allontana leggermente dal tempo astronomico.
Un timestamp Unix può essere negativo? Sì. Un valore negativo rappresenta una data precedente al 1º gennaio 1970.
Perché il mio timestamp ha 13 cifre invece di 10?
Un timestamp di 13 cifre è misurato in millisecondi anziché in secondi. Il metodo Date.now() di JavaScript restituisce i millisecondi trascorsi dall'epoca, e lo fanno anche molte API web, motivo per cui i valori a 13 cifre sono comuni nello sviluppo web.
Un timestamp Unix è uguale in ogni fuso orario? Il numero in sé non è legato a nessun fuso orario: conta sempre i secondi dall'epoca in UTC. Convertirlo in una data e un'ora locali, come "15:00 Eastern", richiede l'applicazione di uno scarto di fuso orario al timestamp grezzo.
Qual è la data più lontana che questo convertitore può gestire? Il 31 dicembre 9999, alle 23:59:59 UTC, che corrisponde al timestamp 253402300799.
Riferimenti
- The Open Group. The Open Group Base Specifications Issue 8, Chapter 3: Definitions. Definizioni POSIX: Epoch — l'epoca è le 00:00:00 del 1º gennaio 1970, UTC.
- The Open Group. The Open Group Base Specifications Issue 8, Chapter 4: General Concepts. POSIX: Seconds Since the Epoch — ogni giorno è contato come esattamente 86.400 secondi.
- MDN Web Docs. Date.now(). Riferimento di Date.now() — restituisce i millisecondi trascorsi dall'epoca.
- MDN Web Docs. Date. Riferimento di JavaScript Date — un oggetto Date contiene fino a ±100.000.000 giorni dall'epoca, fino al 13 settembre, 275760.