Aiuto tecnico

Da Unix Timestamp a data: secondi, millisecondi e UTC spiegati

Converti un Unix timestamp in una data. Secondi vs millisecondi, UTC vs ora locale, ISO 8601 e come tornare da una data al tempo epoch.

Risposta rapida

Un Unix timestamp rappresenta il tempo rispetto all’epoch Unix: 1970-01-01 00:00:00 UTC. Di solito è salvato come secondi dall’epoch o come millisecondi dall’epoch.

Per convertire correttamente, prima devi sapere l’unità. 1720000000 secondi sono 2024-07-03 09:46:40 UTC. 1720000000000 millisecondi sono lo stesso istante.

Il timestamp identifica un istante. UTC, l’ora locale o una zona IANA cambiano solo come quell’istante viene mostrato.

Questa è una guida di conversione: timestamp in data, data in timestamp, UTC vs locale, e ISO 8601. Se un valore diventa all’improvviso una data del 1970, di solito è uno scarto secondi/millisecondi — vedi Unix Timestamp in secondi vs millisecondi: perché la data mostra il 1970.

Che cos’è un Unix Timestamp?

Unix timestamp, Unix time ed epoch time di solito indicano il tempo trascorso da 1970-01-01 00:00:00 UTC. Il numero non è una stringa di data formattata con etichetta di fuso. Lo stesso istante può apparire con orari diversi in UTC, a New York, Tokyo o Seul. I Unix timestamp non sono sempre in secondi: in pratica i millisecondi sono comuni.

Che cos’è l’epoch Unix?

L’epoch Unix è 1970-01-01 00:00:00 UTC. Il timestamp 0 è quell’istante. Un timestamp positivo è dopo l’epoch. Alcuni sistemi ammettono un timestamp negativo per un momento precedente, ma il supporto del linguaggio e dell’intervallo di date varia.

Il mio timestamp è in secondi o in millisecondi?

1720000000 sono secondi; 1720000000000 sono millisecondi; è lo stesso istante. Un indizio pratico: circa 10 cifre spesso sono secondi, circa 13 spesso millisecondi. Il conteggio delle cifre è solo un’euristica. Date passate o future, altre unità o un epoch personalizzato possono apparire diversi. Convertitore data e ora converte con secondi, millisecondi o automatico (≤10 cifre come secondi, ≥13 come millisecondi): scegli l’unità quando la conosci.

Perché l’unità sbagliata produce la data sbagliata?

JavaScript Date si aspetta millisecondi. Passare 1720000000 come se fossero millisecondi dà 1970-01-20 21:46:40 UTC. Trattare i millisecondi come secondi, o il contrario, finisce su una data molto diversa. Per la diagnosi del 1970, vedi Unix Timestamp in secondi vs millisecondi: perché la data mostra il 1970.

new Date(1720000000);
// 1970-01-20T21:46:40.000Z

Come convertire un Unix timestamp in secondi

Moltiplica i secondi per 1000 per ottenere millisecondi. JavaScript Date è basato sui millisecondi, quindi usa new Date(timestamp * 1000).

const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Come convertire un timestamp in millisecondi

Passa i millisecondi a Date direttamente. Non moltiplicare di nuovo per 1000 un timestamp già in millisecondi.

const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Perché lo stesso timestamp mostra un orario diverso?

Un Unix timestamp è un solo istante. Mostrarlo in UTC, in ora locale o in una zona IANA scelta cambia il quadrante. Per 1720000000000, UTC è 2024-07-03 09:46:40. America/New_York in quella data è 2024-07-03 05:46:40 (EDT). Asia/Seoul è 2024-07-03 18:46:40 (UTC+9). Quei valori di New York e Seul arrivano da Intl, non da uno slogan di offset fisso.

Un Unix timestamp contiene un fuso orario?

No. Non memorizza America/New_York né Asia/Seoul. Il timestamp identifica un istante. Il fuso si applica quando formatti quell’istante come data e ora leggibili. L’epoch è definito rispetto a UTC; il numero in sé non è «un campo di fuso UTC».

Unix Timestamp e ISO 8601

1720000000 e 2024-07-03T09:46:40Z possono rappresentare lo stesso istante. Unix è un valore numerico di tempo trascorso. ISO 8601 è una stringa data-ora leggibile e può terminare con Z (UTC) o con un offset numerico. Z significa UTC; a volte si chiama Zulu. Non sono lo stesso formato.

Come si ottiene il Unix timestamp attuale?

In JavaScript, Date.now() è in millisecondi. Math.floor(Date.now() / 1000) è in secondi. Non fissare un «adesso» in un articolo: si muove.

Date.now();
Math.floor(Date.now() / 1000);

Si può convertire una data di nuovo in Unix timestamp?

Sì. Da una stringa ISO UTC esplicita, getTime() restituisce millisecondi; dividi per 1000 e arrotonda per difetto per i secondi.

const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000

Attenzione ai formati di data ambigui

03/07/2024 può essere il 7 marzo o il 3 luglio a seconda della regione. Preferisci data e ora in stile ISO con fuso o offset. Convertitore data e ora rifiuta date numeriche ambigue come 01/02/2026 e chiede un selettore di data o un valore in stile ISO.

E l’ora legale?

Un Unix timestamp non memorizza un flag di ora legale. La visualizzazione locale applica le regole della zona. America/New_York usa offset diversi in inverno e in estate, quindi «New York è UTC-5» non è sempre vero.

I Unix timestamp includono i secondi intercalari?

Il tempo POSIX/Unix tipico non conta i secondi intercalari come secondi SI extra su una scala continua. Le piattaforme possono differire. Per una conversione quotidiana puoi ignorare questo dettaglio.

Errori comuni nella conversione di Unix timestamp

Questi scambi producono la data sbagliata o l’orologio sbagliato:

Secondi trattati come millisecondi
Un valore moderno in secondi finisce vicino al 1970 in JavaScript Date.

Millisecondi trattati come secondi
La data salta lontano nel futuro.

Trattare 10 o 13 cifre come una legge
Il conteggio delle cifre è un indizio, non una garanzia.

Confondere UTC con l’ora locale
L’istante è lo stesso; l’orologio mostrato può differire.

Assumere che un fuso sia dentro il numero
I nomi IANA si applicano in visualizzazione, non sono salvati nel timestamp.

Date ambigue, slogan sull’ora legale o un ×1000 di troppo
Usa un valore in stile ISO. Non moltiplicare di nuovo un timestamp in millisecondi.

Esempi UTC verificati

Questi orari UTC sono stati calcolati, non indovinati:

Ingresso Unità UTC
0 secondi 1970-01-01 00:00:00
1720000000 secondi 2024-07-03 09:46:40
1720000000000 millisecondi 2024-07-03 09:46:40
1720000000 millisecondi 1970-01-20 21:46:40

Una guida semplice per decidere la conversione

Se la fonte indica l’unità, usala. Altrimenti il conteggio delle cifre è un indizio — poi verifica che la data sembri plausibile. Converti i secondi in millisecondi quando l’API serve ms. Scegli UTC, locale o una zona IANA per la visualizzazione. ISO 8601 è utile per archiviare e scambiare.

  • Hai un Unix timestamp
  • Unità indicata? Usala; altrimenti controlla la magnitudine
  • Secondi? ×1000 se l’API serve millisecondi
  • Millisecondi? Usali direttamente in un’API basata su ms
  • Mostra come UTC, locale o zona IANA
  • Serve una stringa? ISO 8601 può andare
Il numero è un istante. La formattazione sceglie il quadrante.
Un timestamp è un istante, non un formato di visualizzazione

Il timestamp identifica un punto nel tempo. UTC, l’ora locale o un fuso decidono solo come quell’istante viene mostrato a una persona.

Converti Unix timestamp nel browser

NEXNARA Convertitore data e ora converte secondi e millisecondi Unix, mostra UTC, ora locale e ISO 8601, e converte tra fusi IANA.

La modalità Unix supporta secondi, millisecondi, unità automatica, ora attuale e data-in-timestamp. La modalità fuso cerca nomi IANA, usa la zona del browser e applica offset Intl consapevoli dell’ora legale. La modalità formato ha output leggibile per regione, visualizzazione 12/24 e un filtro per date ambigue. La differenza tra date è una modalità a parte.

La conversione usa le API Date e Intl del browser. I valori fuori da ciò che Date può rappresentare vengono rifiutati. L’unità automatica non indovina i valori a 11–12 cifre; scegli secondi o millisecondi.

La conversione di date e timestamp avviene nel tuo browser. Gli input non vengono inviati a un server NEXNARA per la conversione. Gli annunci e altre funzioni del sito usano ancora la rete.

Incolla un timestamp in Convertitore data e ora e confronta UTC, ora locale e ISO 8601 prima di scegliere l’unità.

FAQ

Come converto un Unix timestamp in una data?

Conosci l’unità. In JavaScript, per i secondi usa new Date(n * 1000). Per i millisecondi, new Date(n). Poi formatta come UTC, locale o zona.

Il Unix timestamp è in secondi o in millisecondi?

Può essere entrambi. Circa 10 cifre spesso sono secondi e circa 13 millisecondi, ma è un’euristica, non una regola.

Perché il mio timestamp mostra il 1970?

Di solito un valore in secondi è stato letto come millisecondi. Vedi Unix Timestamp in secondi vs millisecondi: perché la data mostra il 1970.

Il Unix timestamp è sempre UTC?

L’epoch è definito rispetto a UTC e il numero identifica un istante. Il fuso di visualizzazione è separato. Non è un «campo di fuso UTC» memorizzato.

Un Unix timestamp contiene un fuso orario?

No. Non porta un identificatore IANA. Il fuso si applica quando formatti l’istante.

Come converto una data in Unix timestamp?

Da una stringa ISO UTC, date.getTime() è in millisecondi; Math.floor(date.getTime() / 1000) è in secondi.