Skip to main content

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.

  1. 2026-03-20T15:00:00Z → 1774018800
  2. in millisecondi → 1774018800000
  3. 2026-03-20T15:00:00+01:00 (Varsavia) → 1774015200
  4. 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.

Guida alla conversione da data a timestamp

Convertire le date in timestamp Unix è un'operazione fondamentale nella programmazione: memorizzare date nei database, registrare eventi e sincronizzare il tempo tra sistemi. Le applicazioni web moderne devono spesso trasferire date tra server e browser, e il timestamp Unix è il formato intermedio ideale, indipendente dai fusi orari.

Applicazioni pratiche

Il timestamp è indispensabile per: ordinare gli eventi dal più recente (valore maggiore = momento successivo), calcolare la differenza di tempo tra due eventi, memorizzare dati in cache con scadenza, gestire sistemi di voto e sondaggi, o nella blockchain, dove ogni blocco porta un timestamp che ne conferma la creazione.

Accuratezza e precisione

Scegli il formato di timestamp in base alle tue esigenze: i secondi (1704067200) bastano per la maggior parte delle applicazioni web e delle API, i millisecondi (1704067200000) sono lo standard in JavaScript e nella JVM e per il tracciamento preciso degli eventi, i nanosecondi (1704067200000000) si usano nei sistemi finanziari dove ogni millisecondo conta.

Questioni e problemi

Controlla sempre il fuso orario durante la conversione: le impostazioni predefinite possono variare tra gli ambienti. Windows e Unix possono gestire diversamente le date precedenti all'epoch (valori negativi). Lavorare con i timestamp è più semplice che con le stringhe di data, perché consente semplici operazioni aritmetiche senza librerie.