Skip to main content

Millisecondi in data

Converti i millisecondi in una data leggibile. Inserisci il timestamp in millisecondi (es. 1704067200000).

Sommare esattamente 24 ore in millisecondi ti porta alle 13:00, non alle 12:00

Un giorno è 86.400.000 millisecondi, tranne nei due giorni all'anno in cui non lo è. Sommalo a mezzogiorno del cambio d'ora di primavera e l'orologio segna le 13:00; fallo in autunno e segna le 11:00. L'aritmetica è corretta: un giorno di calendario e 24 ore sono semplicemente cose diverse due volte l'anno.

Come funziona

  • Converte marche temporali in millisecondi in date e viceversa, in UTC e in ora locale.
  • Mostra la scomposizione in unità, dato che i valori in millisecondi sono difficili da leggere a colpo d'occhio.
  • Segnala il limite oltre il quale una Date smette di essere valida, un guasto che avviene in silenzio e non con clamore.
1 secondo = 1.000 ms      1 ora   = 3.600.000 ms
1 minuto = 60.000 ms      1 giorno = 86.400.000 ms

intervallo di Date in JavaScript = ±8.640.000.000.000.000 ms
  → +275760-09-13 e −271821-04-20

un millisecondo oltre → Invalid Date

Esempio pratico

Sommare un giorno in millisecondi a ciascun cambio d'ora, più il limite dell'intervallo.

  1. inizio 28 marzo 2026, 12:00 — somma 86.400.000 ms → 29 marzo, 13:00
  2. inizio 24 ottobre 2026, 12:00 — somma 86.400.000 ms → 25 ottobre, 11:00
  3. 8.640.000.000.000.000 ms → +275760-09-13, il massimo
  4. un millisecondo in più → Invalid Date
  5. quella Invalid Date resta un oggetto, e getTime() restituisce NaN

Nessuno dei due cambi ti riporta alle 12:00, perché il giorno di calendario è durato 23 o 25 ore. E il guasto sull'intervallo è peggiore di un'eccezione: Invalid Date supera instanceof Date, quindi prosegue e trasforma in NaN ogni calcolo successivo.

Come leggere il risultato

  • Usa l'aritmetica di calendario quando intendi «domani alla stessa ora» e quella in millisecondi quando intendi «fra 24 ore». Coincidono per 363 giorni all'anno, ed è esattamente per questo che la discrepanza viene colta così di rado nei test.
  • Invalid Date è la modalità di guasto pericolosa proprio perché non è un errore. È un oggetto Date il cui getTime() vale NaN, e NaN si propaga in silenzio attraverso ogni operazione successiva finché qualcosa molto più a valle non compare vuoto o a zero.
  • Il limite dell'intervallo è ±100.000.000 giorni dall'epoca, abbastanza generoso perché raggiungerlo significhi quasi sempre una moltiplicazione sbagliata e non una data reale: quasi sempre secondi passati dove ci si aspettavano millisecondi, gonfiando il valore di mille volte.
  • I millisecondi stanno comodamente nell'intervallo degli interi sicuri, quindi a differenza dei nanosecondi possono vivere in un numero ordinario senza perdere cifre. È la ragione pratica per cui la maggior parte delle API si è fermata ai millisecondi e non a qualcosa di più fine.

Domande frequenti

Perché la mia data è sfasata di un'ora dopo aver aggiunto un giorno?
Hai attraversato un cambio d'ora. Sommare 86.400.000 ms aggiunge esattamente 24 ore, ma quel giorno di calendario ne aveva 23 o 25. Se volevi la stessa ora dell'orologio, aggiungi un giorno con l'aritmetica di calendario anziché con un numero fisso di millisecondi.
Che cosa significa Invalid Date?
Il valore è caduto fuori da ±8.640.000.000.000.000 ms oppure non è stato possibile analizzarlo. Non è un'eccezione: è un oggetto Date il cui getTime() vale NaN, quindi continua a circolare nel tuo codice e trasforma in silenzio anche i calcoli successivi in NaN.

Guida ai timestamp in millisecondi

I timestamp in millisecondi sono il formato più diffuso nelle applicazioni web moderne e in JavaScript. Un millisecondo è un millesimo di secondo, il che offre più precisione dei secondi tradizionali. JavaScript (Date.now()) e la JVM restituiscono l'ora in questo formato, rendendolo lo standard di fatto della maggior parte delle piattaforme web.

JavaScript e i timestamp

In JavaScript, Date.now() restituisce il timestamp in millisecondi dall'epoch del 1970. A differenza di altri linguaggi, JavaScript non ha un oggetto Date nativo che supporti i nanosecondi. Per ottenere maggiore precisione, gli sviluppatori usano performance.now(), che restituisce frazioni di millisecondo con precisione al microsecondo.

Applicazioni che richiedono millisecondi

La precisione al millisecondo è cruciale in: sistemi di trading in cui conta l'ordine di esecuzione, profiling delle prestazioni delle applicazioni web, animazioni e giochi nel browser per una fluidità di 60+ FPS, sistemi IoT che raccolgono dati dai sensori in tempo reale, e registrazione degli eventi per l'analisi degli incidenti.

Cast e conversione

Per convertire i millisecondi in altri formati: dividi per 1000 per i secondi, per 1.000.000 per i nanosecondi, per 1000 × 60 per i minuti e così via. Windows .NET e altri sistemi possono usare un'epoch diversa: consulta sempre la documentazione.