Conversione delle marche temporali Unix

Converte in entrambi i sensi fra la marca temporale Unix, in secondi o millesimi dall'epoca, e la data leggibile da una persona. Uno strumento per sviluppatori con orologio mondiale, inserimento immediato dell'ora corrente e visualizzazione su più fusi orari.

Nozioni di base sulla marca temporale Unix

La marca temporale Unix esprime un istante come numero di secondi trascorsi dalla mezzanotte del primo gennaio 1970 in tempo coordinato universale, la cosiddetta epoca Unix. La tabella riporta alcuni valori significativi con la data corrispondente.

Marca temporale (secondi) Data e ora in UTC Note
0 1970-01-01T00:00:00Z Epoca Unix, origine delle marche temporali
1000000000 2001-09-09T01:46:40Z Il momento in cui si raggiunse il miliardo di secondi, detto Unix Billennium
1234567890 2009-02-13T23:31:30Z Valore divenuto celebre perché le sue cifre decimali si succedono da 1 a 9
2147483647 2038-01-19T03:14:07Z Il problema del 2038: valore massimo di un intero con segno a 32 bit, che un secondo dopo trabocca

Che cos'è il convertitore di marche temporali Unix

Questo strumento converte in entrambi i sensi la marca temporale Unix — il numero di secondi o di millesimi di secondo trascorsi dall'epoca Unix, cioè la mezzanotte del primo gennaio 1970 in tempo coordinato universale — e una data leggibile da una persona. Basta incollare un numero per ottenere subito la data in formato ISO 8601, il tempo relativo rispetto a adesso e la stessa istante letta in sei fusi orari; oppure si può partire da una data e un'ora scelte a piacere per risalire alla marca temporale corrispondente, con la gestione corretta del passaggio all'ora legale.

Tutta l'elaborazione avviene nel navigatore: nessun dato lascia il dispositivo. Questo lo rende adatto anche a marche temporali estratte da registri riservati o da basi di dati di produzione. Vale la pena ricordare, come contesto, il cosiddetto problema del 2038: i sistemi che memorizzano la marca temporale con un intero con segno a 32 bit non potranno rappresentare un istante oltre le 03:14:07 del 19 gennaio 2038 in tempo coordinato universale, esattamente 2.147.483.647 secondi dopo l'epoca, superato il quale il conteggio trabocca e la data si azzera.

Come si usa il convertitore

  1. Scegliete la direzione della conversione Nella prima scheda si converte da marca temporale a data, nella seconda da data a marca temporale: individuate quella che corrisponde a ciò che avete già in mano.
  2. Incollate la marca temporale oppure inserite la data Nel primo caso incollate il numero preso, per esempio, da un registro o da una risposta di un'interfaccia; nel secondo scegliete data, ora e fuso orario dal selettore.
  3. Lasciate il riconoscimento automatico dell'unità, se non siete certi Il numero di cifre distingue di norma secondi (circa dieci cifre) da millesimi di secondo (circa tredici); l'unità può comunque essere forzata manualmente in qualsiasi momento.
  4. Leggete il risultato nella tabella dei fusi orari Lo stesso istante viene mostrato contemporaneamente in UTC, Giappone, New York, Los Angeles, Londra e Parigi, utile per confrontare più squadre o più mercati.
  5. Usate il pulsante dell'ora corrente per una prova rapida Inserisce all'istante il momento presente letto dall'orologio del dispositivo, comodo per verificare al volo il formato atteso prima di incollare dati veri.

Consigli per sfruttarlo al meglio

  • Dieci cifre indicano di norma i secondi, tredici i millesimi di secondo. Lasciando il riconoscimento automatico, l'unità viene dedotta dal numero di cifre.
  • Potete incollare senz'altro la marca temporale presa dai registri di un servente o dalla risposta di un'interfaccia e vederla subito espressa in più fusi orari.
  • Nella conversione dalla data alla marca temporale ricordate che occorre indicare esplicitamente a quale fuso orario si riferisca la data inserita.
  • Il formato ISO 8601 in tempo coordinato universale è interpretabile direttamente da molti linguaggi e molte basi di dati: è quindi un utile riferimento nella ricerca nei registri e nella progettazione delle interfacce.
  • Il pulsante per inserire l'ora corrente riporta immediatamente nel campo il momento presente, letto dall'orologio del navigatore.

Situazioni in cui torna utile

Analisi dei registri di un servente

I registri riportano spesso l'orario come marca temporale grezza: incollandola qui si ottiene subito la data leggibile e la posizione nel fuso orario di chi ha generato l'evento, utile per ricostruire l'ordine cronologico durante un'indagine su un guasto.

Messa a punto di interfacce di programmazione

Molte interfacce restituiscono campi come created_at o expires_at in secondi o millesimi dall'epoca: verificare qui il valore prima di scrivere il codice evita di scoprire solo in produzione se l'unità attesa era quella sbagliata.

Controllo delle colonne temporali di una base di dati

Quando una colonna conserva l'orario come intero anziché come tipo data, questo strumento permette di verificare a occhio, senza scrivere una query di conversione, se il valore memorizzato corrisponde davvero al momento atteso.

Coordinamento fra squadre in fusi orari diversi

Condividendo una scadenza o l'orario di una riunione come marca temporale, ciascuno può leggere qui l'orario locale corrispondente senza il rischio di errori di conversione manuale.

Preparazione di dati di prova o di esempi di codice

Per popolare un ambiente di collaudo con date coerenti, o per includere un valore realistico in un frammento di codice dimostrativo, è più rapido generare qui la marca temporale che calcolarla a mano.

Glossario

Marca temporale Unix
Il numero di secondi (o di millesimi di secondo) trascorsi dall'epoca Unix. Individua un istante con un solo numero indipendente dal fuso orario, il che lo rende comodo per lo scambio di dati fra sistemi diversi.
Epoca Unix
L'istante di riferimento da cui si conta la marca temporale: la mezzanotte del primo gennaio 1970 in tempo coordinato universale. Da questa data prende il nome anche l'espressione «epoca».
UTC (tempo coordinato universale)
Lo standard di riferimento mondiale per l'ora civile, indipendente da qualunque fuso orario locale. La marca temporale Unix è definita a partire da questo tempo, e la maggior parte dei sistemi lo usa internamente prima di convertire nel fuso dell'utente.
Epoca in millesimi di secondo
Variante della marca temporale Unix che conta i millesimi di secondo anziché i secondi interi, usata da JavaScript e da molte interfacce web quando serve una precisione maggiore.
ISO 8601
Lo standard internazionale per scrivere data e ora in un formato testuale non ambiguo, per esempio 2026-09-20T12:00:00Z. È interpretabile direttamente da molti linguaggi e molte basi di dati.
Problema del 2038
Il difetto per cui i sistemi che memorizzano la marca temporale con un intero con segno a 32 bit traboccheranno alle 03:14:07 del 19 gennaio 2038 in tempo coordinato universale, un secondo dopo il valore massimo rappresentabile di 2.147.483.647 secondi dall'epoca.
Ora legale (DST)
La pratica di spostare l'orologio di un'ora in alcuni periodi dell'anno, adottata in molti dei fusi orari elencati in questo strumento. La conversione dalla data alla marca temporale tiene conto del cambio automaticamente.
Tempo relativo
Un modo di esprimere un istante rispetto ad adesso, come «tre ore fa» o «fra due giorni», più immediato da leggere rispetto a una data assoluta quando l'evento è recente.

Domande frequenti

È il modo di esprimere un istante come numero di secondi trascorsi dalla mezzanotte del primo gennaio 1970 in tempo coordinato universale, la cosiddetta epoca Unix. Poiché individua univocamente un momento con un solo numero, indipendente dal fuso orario, è largamente adottata come rappresentazione standard negli scambi fra macchine: registri dei serventi, basi di dati e interfacce di programmazione.

È il difetto per cui i sistemi che trattano la marca temporale con un intero con segno a 32 bit traboccheranno un secondo dopo le 03:14:07 del 19 gennaio 2038 in tempo coordinato universale, cioè dopo il valore massimo di 2.147.483.647 secondi, riportando la data indietro al 1901 circa. La maggior parte dei sistemi odierni usa interi a 64 bit e non ne risente, ma nei dispositivi incorporati e nei sistemi datati la questione resta attuale.

Le marche temporali degli anni Venti e Trenta di questo secolo hanno all'incirca dieci cifre se espresse in secondi e tredici se espresse in millesimi. La modalità di riconoscimento automatico di questo strumento sfrutta questa differenza, ma per esserne certi conviene consultare le specifiche del dato d'origine o la documentazione dell'interfaccia.

Non esiste una ragione unica documentata. Si ritiene che abbiano pesato lo sviluppo di Unix stesso, avvenuto fra il 1969 e il 1970, e la scelta di un anno tondo e maneggevole, dati i limiti di memoria delle macchine dell'epoca. Quella data, detta epoca Unix, è poi divenuta lo standard di fatto ripreso da quasi tutti i linguaggi e i sistemi operativi.

I valori negativi indicano istanti anteriori al primo gennaio 1970. Per esempio la marca temporale -86400 corrisponde alla mezzanotte del 31 dicembre 1969 in tempo coordinato universale. I sistemi che trattano date storiche o date di nascita anteriori al 1970 usano talvolta marche temporali negative.
Tool-kun

A proposito — perché gli elaboratori contano il tempo in secondi

Le persone indicano un istante combinando anno, mese, giorno e ora, come «12 luglio 2026, ore 17.08», ma per una macchina questa forma è scomoda: bisogna tener conto ogni volta di regole intricate — anni bisestili, fusi orari, ora legale — e perfino calcolare la differenza fra due istanti richiede un'elaborazione laboriosa. Di qui l'idea di esprimere il tempo con un solo numero, i secondi trascorsi da un istante di riferimento: è la marca temporale Unix.

Il vantaggio maggiore di trattare il tempo come un unico numero intero è che confronti, somme e sottrazioni si riducono a semplici operazioni aritmetiche. Per sapere quanti secondi separino due eventi basta sottrarre le marche temporali, senza curarsi degli anni bisestili né della diversa lunghezza dei mesi. Proprio per questa semplicità la marca temporale è stata adottata come rappresentazione interna non soltanto dai sistemi Unix, ma anche dalle basi di dati e da molti linguaggi di programmazione, diventando lo standard mondiale di fatto. Windows, invece, conserva l'ora come FILETIME (intervalli di 100 nanosecondi dal 1° gennaio 1601), anche se il time_t della sua libreria C usa lo stesso formato delle marche temporali Unix.

D'altra parte, l'idea di un numero unico indipendente dal fuso orario comporta che la conversione al fuso avvenga soltanto al momento della lettura da parte di una persona. La stessa marca temporale corrisponde a piena notte a Tokyo e al primo pomeriggio del giorno precedente a New York: la data che si vede cambia radicalmente secondo il fuso scelto. Molti dei difetti che nell'analisi dei registri o nella messa a punto delle integrazioni fra interfacce si manifestano come «orari sfasati» nascono proprio dalla dimenticanza di questa conversione.