Come convertire i timestamp Unix in date leggibili dall'uomo
Risposta rapida
Timestamp Unix = secondi (o millisecondi) dal 1970-01-01 00:00:00 UTC. Converti in una data con la nuova Date(timestamp * 1000) in JavaScript (secondi) o la nuova Date(timestamp) (millisecondi). Converti una data indietro con Math.floor(date.getTime() / 1000). Utilizza il nostro convertitore di timestamp per eseguire entrambe le operazioni istantaneamente nel tuo browser.
Introduzione
Un timestamp Unix (chiamato anche tempo epoca o tempo POSIX) è il numero di secondi trascorsi dal 1970-01-01 00:00:00 UTC (l'epoca Unix), esclusi i secondi intercalari. È la lingua franca del tempo nell'informatica perché è un singolo numero intero indipendente dal fuso orario e banalmente ordinabile. La maggior parte dei sistemi utilizza i secondi; JavaScript e molti database utilizzano i millisecondi.
Passo dopo passo
-
Comprendere i secondi e i millisecondi
La maggior parte dei sistemi backend e APIs utilizzano i secondi (timestamp a 10 cifre fino al 2286). La data di JavaScript e l'utilizzo istantaneo di Java sono in millisecondi (13 cifre). Conferma sempre quale unità si aspetta un API: mescolandole si sposta la data di un fattore 1000 (fuori di ~ 31 anni).
-
Converti un timestamp in una data leggibile
Incolla il timestamp nel convertitore timestamp. Rileva secondi vs millisecondi in base alla lunghezza (10 vs 13 cifre) e visualizza la data in UTC e il fuso orario locale. Nel codice: new Date(1700000000 * 1000).toISOString() restituisce '2023-11-14T22:13:20.000Z'.
-
Converti una data in un timestamp
Inserisci una data e un'ora nel convertitore; restituisce il timestamp Unix. Nel codice: Math.floor(new Date('2026-08-28T12:00:00Z').getTime() / 1000) restituisce i secondi dell'epoca. Specificare sempre il fuso orario (Z o un offset) per evitare ambiguità rispetto all'ora locale.
-
Gestisci correttamente i fusi orari
I timestamp Unix sono sempre UTC: non hanno fuso orario. Converti in una visualizzazione locale solo a livello di presentazione. Non memorizzare mai l'ora locale come timestamp; memorizza UTC e converti sul display. Utilizza i nomi dei fusi orari IANA (America/New_York) con Intl.DateTimeFormat per la corretta gestione dell'ora legale.
-
Calcolare le differenze tra le date
Sottrai due timestamp per ottenere la differenza in secondi (o millisecondi). Dividere per 60 per i minuti, 3600 per le ore, 86400 per i giorni. Utilizza il nostro strumento Differenza di data per intervalli a misura d'uomo o il Calcolatore di età per età basate sulla data di nascita.
Esempi
L'epoca di Unix
Ingresso: 0 (seconds)
Produzione: 1970-01-01 00:00:00 UTC
Un miliardo di secondi dopo l'epoca
Ingresso: 1000000000 (seconds)
Produzione: 09-09-2001 01:46:40 UTC
Inizio del 2026 in UTC
Ingresso: 2026-01-01T00:00:00Z
Produzione: 1767225600 (secondi) / 1767225600000 (millisecondi)
Differenza tra due date
Ingresso: 1767225600 - 1700000000
Produzione: 67225600 seconds = 778.08 days ≥2 years 31 days
Problemi comuni
- Confusione tra secondi e millisecondi: un timestamp di 10 cifre letto come millisecondi fornisce una data nel 1970; un timestamp a 13 cifre letto come secondi supera l'interno a 32 bit. Rileva l'unità in base al conteggio delle cifre o documentala esplicitamente in API.
- Memorizzazione dell'ora locale come timestamp: i timestamp sono UTC. Se calcoli Date.now() in un browser impostato su UTC-5 e tratti il risultato come locale, le transizioni dell'ora legale sposteranno i tuoi dati di un'ora due volte l'anno.
- Overflow a 32 bit il 19-01-2038 03:14:07 UTC (Y2038): i sistemi che utilizzano un timestamp di secondi a 32 bit con segno non possono rappresentare date successive a questo punto. Utilizza timestamp a 64 bit o millisecondi nei nuovi sistemi.
- I secondi intercalari vengono ignorati: i timestamp Unix saltano i secondi intercalari, quindi la differenza tra due timestamp non è uguale al numero di secondi SI trascorsi. La maggior parte delle applicazioni può ignorarlo; l’astronomia e la finanza di alta precisione non possono.
Suggerimenti
- Memorizza e trasmetti sempre i timestamp in UTC; convertire in ora locale solo a livello di visualizzazione utilizzando Intl.DateTimeFormat con un fuso orario IANA.
- Utilizza stringhe ISO 8601 (ad esempio 2026-08-28T12:00:00Z) per APIs leggibili dall'uomo e timestamp per l'archiviazione: le stringhe ISO riportano esplicitamente il loro fuso orario e non sono ambigue.
- Quando confronti i timestamp, utilizza la stessa unità (secondi o millisecondi) su entrambi i lati: una mancata corrispondenza delle unità è uno dei bug di data più comuni.
- Utilizza il nostro convertitore timestamp per verificare l'integrità delle risposte API durante il debug: mostra sia l'ora UTC che quella locale in modo da poter individuare immediatamente i bug del fuso orario.