Come convertire il tempo epoch in una data leggibile

Una guida pratica per convertire i timestamp Unix in date leggibili nei linguaggi di programmazione più diffusi, con strumenti online ed esempi consapevoli del fuso.

Cos'è il tempo epoch?

Il tempo epoch (chiamato anche tempo Unix o tempo POSIX) è il numero di secondi trascorsi dalle 00:00:00 UTC del 1° gennaio 1970. È lo standard universale per rappresentare istanti nell'informatica. Praticamente ogni linguaggio e sistema operativo lo supporta in modo nativo, rendendolo il formato più affidabile per memorizzare e scambiare timestamp tra sistemi.

Passo 1 — Identifica il formato del tuo timestamp

Prima di convertire, stabilisci se il tuo timestamp è in secondi o in millisecondi:

  • 10 cifre (es. 1700000000) → secondi dall'epoch Unix
  • 13 cifre (es. 1700000000000) → millisecondi dall'epoch Unix
  • Nel dubbio, dividi per 1000 e controlla se l'anno sembra ragionevole
  • Puoi anche incollare il timestamp nel convertitore qui sopra, che lo rileverà automaticamente

Convertire epoch in data in JavaScript

Il costruttore Date di JavaScript accetta millisecondi. Se il tuo timestamp è in secondi, moltiplicalo prima per 1000.

  • new Date(1700000000 * 1000).toISOString() → '2023-11-15T06:13:20.000Z'
  • new Date(1700000000 * 1000).toUTCString() → 'Wed, 15 Nov 2023 06:13:20 GMT'
  • new Date(1700000000 * 1000).toLocaleString('en-US', { timeZone: 'America/New_York' })
  • new Date(1700000000000).getTime() → 1700000000000 (milliseconds back)

Convertire epoch in data in Python

Il modulo datetime di Python offre fromtimestamp() per l'ora locale e utcfromtimestamp() per UTC. Per una gestione esplicita del fuso usa il parametro timezone.utc.

  • datetime.datetime.fromtimestamp(1700000000) → local timezone
  • datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc) → UTC (Python 3.2+)
  • datetime.datetime.fromtimestamp(1700000000).strftime('%Y-%m-%d %H:%M:%S') → formatted string
  • datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc).isoformat() → ISO 8601

Convertire epoch in data in PHP

Le funzioni date() e la classe DateTime di PHP supportano direttamente i timestamp Unix.

  • date('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (server's local timezone)
  • gmdate('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (always UTC)
  • $dt = new DateTime(); $dt->setTimestamp(1700000000); $dt->format('c') → ISO 8601

Convertire epoch in data in Go

Il pacchetto time di Go converte i timestamp Unix con time.Unix(seconds, nanoseconds).

  • time.Unix(1700000000, 0) → time.Time in local timezone
  • time.Unix(1700000000, 0).UTC() → force UTC
  • time.Unix(1700000000, 0).Format(time.RFC3339) → '2023-11-15T06:13:20Z'
  • time.Unix(1700000000, 0).Format('2006-01-02 15:04:05') → custom layout

Errori comuni nella conversione del tempo epoch

Gli errori più frequenti con i timestamp Unix:

  • Dimenticare di moltiplicare i secondi per 1000 in JavaScript — new Date(1700000000) dà l'anno 1970, non il 2023
  • Usare i millisecondi di JavaScript direttamente come secondi in un linguaggio lato server
  • Non specificare un fuso e affidarsi a quello del server, che varia tra gli ambienti
  • Memorizzare i timestamp come stringhe anziché come interi, il che rompe confronti e aritmetica numerici

FAQ su epoch in data

Come converto il tempo epoch in una data?
Stabilisci se il valore è in secondi (10 cifre) o millisecondi (13 cifre), poi converti con l'API di date del tuo linguaggio — new Date(seconds * 1000) in JavaScript, datetime.fromtimestamp(seconds, tz=timezone.utc) in Python, o incollalo nel convertitore qui sopra.
Perché il mio timestamp epoch si converte nel 1970?
Hai passato un valore in secondi a una funzione che si aspetta millisecondi, quasi sempre il new Date() di JavaScript. Moltiplica prima il valore in secondi a 10 cifre per 1000.
Devo convertire il tempo epoch in UTC o in ora locale?
Usa UTC per log, API e confronti tra server, e converti nel fuso locale dell'utente solo per la visualizzazione. Il valore epoch è neutro rispetto al fuso.