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.