RUNWEBTOOLS
Italiano
Web & sviluppatori

Lavorare con i timestamp Unix: il tempo epoch reso semplice

Aggiornato 2026-07-06

Apri una risposta di un'API o una riga di database e spesso troverai una data memorizzata come un semplice numero tipo 1751760000. Quello è un timestamp Unix, ed è così che un'enorme quantità di software tiene traccia del tempo. Questa guida spiega cosa significa quel numero, perché i computer contano il tempo così, e le insidie — secondi vs. millisecondi, fusi orari e il problema dell'anno 2038.

Cos'è un timestamp Unix

Un timestamp Unix è il numero di secondi trascorsi da un momento fisso chiamato epoch: 00:00:00 UTC del 1° gennaio 1970. Quindi 0 è l'epoch stesso, 60 è un minuto dopo, e 1751760000 è un momento del 2025. È solo un conteggio continuo di secondi.

Perché contare i secondi dal 1970?

Rappresentare il tempo come un singolo intero è enormemente comodo per i computer. Confrontare due momenti diventa confrontare due numeri; trovare l'intervallo tra loro è una sottrazione; ordinare eventi è solo ordinare interi — il tutto senza calendari, mesi, anni bisestili o fusi orari da considerare. Il punto di partenza del 1970 è una scelta storica dei primi giorni del sistema operativo Unix che è semplicemente rimasta.

La trappola secondi vs. millisecondi

È l'errore che quasi tutti fanno almeno una volta. I timestamp Unix sono classicamente in secondi, ma molti sistemi — JavaScript in particolare — usano i millisecondi (millesimi di secondo). I due differiscono di un fattore 1000:

secondi:      1751760000
millisecondi: 1751760000000

Passa un valore in secondi a qualcosa che si aspetta millisecondi e la tua data finisce nel 1970; fai il contrario e finisce decine di migliaia di anni nel futuro. Il controllo rapido: un timestamp attuale in secondi ha 10 cifre; in millisecondi, 13. Quando una data convertita sembra assurda, è quasi sempre per questo.

Fusi orari e UTC

Un punto di forza chiave dei timestamp Unix: il numero stesso è sempre in UTC. Rappresenta un istante esatto, uguale per tutti sulla Terra. Il timestamp 1751760000 è un singolo momento; che venga mostrato come le 16 a Londra o le 11 a New York è puramente una scelta di visualizzazione applicata alla fine. Memorizzare il tempo come timestamp UTC e convertirlo in ora locale solo quando lo mostri evita un'intera categoria di bug sui fusi orari. Per vedere lo stesso istante in regioni diverse, un convertitore di fusi orari è lo strumento giusto.

Convertire da e verso date umane

Avrai continuamente bisogno di andare in entrambe le direzioni — trasformare un timestamp in una data leggibile per fare il debug di un log, o una data in un timestamp per interrogare un'API. Il nostro convertitore di timestamp Unix fa entrambe le cose all'istante e mostra il risultato nella tua ora locale e in UTC. Per misurare invece l'intervallo tra due date, il calcolatore di differenza tra date lo gestisce direttamente.

Il problema dell'anno 2038

I sistemi più vecchi memorizzano il timestamp come intero con segno a 32 bit, che può contare solo fino a 2.147.483.647. Quel tetto viene raggiunto alle 03:14:07 UTC del 19 gennaio 2038 — un secondo dopo il contatore va in overflow e torna a un numero negativo, rimandando le date al 1901. È la stessa classe di bug del Y2K. La correzione è già diffusa: usare un intero a 64 bit, che spinge il limite a circa 292 miliardi di anni. La maggior parte del software moderno è a posto, ma è utile saperlo quando si toccano sistemi legacy.

Riferimento rapido

  • Un timestamp Unix = secondi dal 1° gennaio 1970 UTC.
  • 10 cifre = secondi; 13 cifre = millisecondi.
  • Il valore è sempre UTC — applica i fusi orari solo alla visualizzazione.
  • La memorizzazione a 32 bit si rompe nel 2038; quella a 64 bit no.

Altro su Web & sviluppatori

Vedi tutte le guide di Web & sviluppatori →

Strumenti citati in questa guida