Data in timestamp
Converti una data in un timestamp.
Trasformare una data in timestamp Unix
Una data è ambigua finché non si dice in quale fuso si trova. Un timestamp non lo è: è un singolo istante contato dal 1970 in UTC. Convertire tra i due impone di scegliere un fuso, e sbagliarlo sposta la risposta di ore.
Come funziona
- Interpreta la data e l'ora che fornisci in un fuso scelto, poi conta i secondi dall'epoca Unix.
- Restituisce il risultato in secondi e millisecondi, dato che sistemi diversi si aspettano unità diverse.
- Rende esplicito il fuso invece di assumere in silenzio quello del browser, da cui nasce gran parte dei bug di conversione.
timestamp = secondi dal 1970-01-01T00:00:00Z la stessa ora d'orologio in due fusi dà due timestamp diversi, separati dalla differenza dei loro scarti millisecondi = secondi × 1000
Esempio pratico
Le 15:00 del 20 marzo 2026, lette prima come UTC e poi come ora locale di Varsavia.
- 2026-03-20T15:00:00Z → 1774018800
- in millisecondi → 1774018800000
- 2026-03-20T15:00:00+01:00 (Varsavia) → 1774015200
- i due differiscono di 3.600 secondi: esattamente un'ora
Stessa data, stessa lettura dell'orologio, due timestamp distanti un'ora. Il fuso non è un dettaglio di formattazione: è parte di ciò che la data significa.
Come leggere il risultato
- Una stringa di sola data come 2026-03-20 viene interpretata come mezzanotte UTC dalla specifica ECMAScript, mentre 2026-03-20T00:00:00 senza Z viene letta come ora locale. La differenza è il tuo scarto, ed è per questo che gli input di sola data causano spesso errori di un giorno.
- Il tempo Unix ignora i secondi intercalari. Ogni giorno ha esattamente 86.400 secondi, quindi un timestamp non è un vero conteggio di secondi fisici trascorsi: per misurare intervalli usa un orologio monotono.
- Verifica se il sistema ricevente vuole secondi o millisecondi. Dieci cifre sono secondi, tredici millisecondi; passare l'uno al posto dell'altro produce una data nel 1970 o nell'anno 57.000.
- Per date precedenti al 1970 il timestamp è negativo. È valido, ma la gestione varia: alcuni database e librerie rifiutano o trattano male i valori negativi.
Domande frequenti
- Perché la mia data risulta un giorno prima o dopo?
- Quasi sempre per un'assunzione di fuso su un valore di sola data. Se inserisci 2026-03-20 e il sistema la legge come mezzanotte UTC, chiunque a ovest di Greenwich vedrà il diciannove in locale. Allega sempre un'ora e un fuso espliciti a una data che intendi convertire.
- Meglio memorizzare date o timestamp?
- Memorizza un istante in UTC ogni volta che ciò che registri è accaduto in un momento preciso: un evento, una voce di log, una transazione. Memorizza una data semplice solo quando il fuso davvero non conta, come un compleanno, dove il 20 marzo significa la stessa cosa ovunque.