Convertitore di Timestamp
Converti i timestamp Unix (secondi o millisecondi dall'Epoca Unix) in stringhe di data e ora leggibili, e riconverti le date in timestamp Unix. Supporta i fusi orari UTC e locali.
Il tempo Unix ha iniziato a contare dal 1 gennaio 1970 00:00:00 UTC - l'Epoca Unix. Ogni timestamp Unix è il numero di secondi (o millisecondi in molti sistemi moderni) trascorsi da quel momento. I timestamp sono utilizzati in tutta la programmazione, i database e le API perché sono indipendenti dal fuso orario, ordinabili come interi e facili da confrontare aritmeticamente. Leggere 1711843200 come un numero grezzo non ti dice nulla. Questo convertitore lo traduce in 2024-03-31T00:00:00.000Z istantaneamente, utilizzando ISO 8601 - lo standard internazionale per le date. Tutte le conversioni vengono eseguite localmente nel tuo browser.
Come Usare Questo Strumento
- Timestamp a Data: Inserisci un timestamp Unix in secondi o millisecondi - lo strumento mostra la data in UTC e nel tuo fuso orario locale.
- Data a Timestamp: Inserisci una data e un'ora utilizzando il selettore di date, quindi copia il timestamp Unix risultante in secondi e millisecondi.
- Clicca Ora per riempire il timestamp corrente come riferimento.
- Usa il selettore di formato per visualizzare le date in ISO 8601, RFC 2822, o in formato leggibile.
Comprendere i Timestamp Unix
Secondi vs Millisecondi
Due convenzioni sono ampiamente utilizzate. Il tempo Unix in secondi (10 cifre a partire dal 2024, ad es., 1711843200) è utilizzato dalle API POSIX, time() di C/C++, time.time() di Python e dalla maggior parte dei sistemi lato server. Il tempo Unix in millisecondi (13 cifre, ad es., 1711843200000) è utilizzato da Date.now() di JavaScript, System.currentTimeMillis() di Java e da molte API web. Regola veloce: 10 cifre significa secondi; 13 cifre significa millisecondi. Il più grande timestamp valido a 32 bit è 2147483647 (secondi), corrispondente al 19 gennaio 2038 - il problema dell'anno 2038 per i sistemi legacy.
Formato ISO 8601
ISO 8601 è lo standard internazionale per le rappresentazioni di data e ora. Il formato completo UTC è YYYY-MM-DDTHH:mm:ss.sssZ, dove T separa data e ora e Z denota UTC (ora Zulu). ISO 8601 è il formato raccomandato per le risposte API e lo scambio di dati perché è univoco, ordinabile lessicograficamente (l'ordine delle stringhe corrisponde all'ordine cronologico) e analizzabile in ogni linguaggio di programmazione principale.
Esempio
Timestamp a Data
Input (secondi): 1711843200
Data UTC (ISO 8601): 2024-03-31T00:00:00.000Z
RFC 2822: Dom, 31 Mar 2024 00:00:00 +0000
Leggibile (UTC): Domenica, 31 Marzo 2024 alle 12:00:00 AM UTC
Data a Timestamp
Input: 2024-03-31 00:00:00 UTC
Unix (secondi): 1711843200
Unix (millisecondi): 1711843200000
Formati di Timestamp Comuni
- Unix secondi (POSIX):
1711843200- 10 cifre, utilizzato in C, Python, Go, la maggior parte delle API di sistema - Unix millisecondi:
1711843200000- 13 cifre, utilizzato in JavaScript, Java, molte API REST - ISO 8601 UTC:
2024-03-31T00:00:00Z- raccomandato per risposte API e archiviazione dati - ISO 8601 con offset:
2024-03-31T03:00:00+03:00- include l'offset del fuso orario per un orario locale univoco - RFC 2822:
Dom, 31 Mar 2024 00:00:00 +0000- utilizzato nelle intestazioni email e nell'intestazioneDateHTTP - Riferimento all'Epoca Unix:
0=1970-01-01T00:00:00Z
Best Practices
- Memorizza i timestamp in UTC nei database - converti in orario locale solo a livello di visualizzazione
- Usa ISO 8601 per le risposte API - è univoco e analizzabile in tutti i linguaggi
- Preferisci i millisecondi ai secondi per i nuovi sistemi per evitare l'aritmetica in virgola mobile con precisione sub-secondo
- Migra la memorizzazione dei timestamp a 32 bit a 64 bit per evitare il problema di overflow dell'anno 2038
Per identificatori unici con timestamp incorporati, UUID v7 (RFC 9562) combina timestamp Unix in millisecondi con bit casuali per ID ordinabili e unici - usa il Generatore UUID per UUID v4 quando non è richiesto l'ordine di ordinamento. Per il debug delle risposte JSON contenenti timestamp, il Formatter JSON rende leggibili i campi timestamp annidati.
Domande Frequenti
Che cos'è un timestamp Unix?
Un timestamp Unix è il numero di secondi trascorsi dall'Epoca Unix - mezzanotte (00:00:00 UTC) del 1 gennaio 1970 - escludendo i secondi bisestili. È indipendente dal fuso orario, un semplice intero e facile da confrontare e ordinare. I timestamp Unix sono la rappresentazione interna universale del tempo nei sistemi operativi, nei database e nei linguaggi di programmazione.
Come faccio a capire se un timestamp è in secondi o millisecondi?
Contare le cifre. A partire dal 2024, i timestamp Unix in secondi sono 10 cifre (ad es., 1700000000). I timestamp in millisecondi sono 13 cifre (ad es., 1700000000000). Se il numero è inferiore a circa 10 miliardi, è probabile che sia in secondi. I timestamp con precisione in nanosecondi (utilizzati in alcuni sistemi ad alta frequenza) sono 19 cifre.
Qual è il problema dell'anno 2038?
I sistemi che memorizzano i timestamp Unix come interi firmati a 32 bit possono rappresentare solo valori fino a 2.147.483.647. Quel massimo corrisponde al 19 gennaio 2038 alle 03:14:07 UTC. Aggiungere un secondo dopo causa un overflow intero a un grande numero negativo, interrompendo i calcoli delle date. I sistemi moderni a 64 bit sono al sicuro fino a circa 292 miliardi di anni da ora.
Il convertitore utilizza il mio fuso orario locale?
Sì. Lo strumento mostra sia l'UTC che il tuo orario locale. L'orario locale è determinato dalle impostazioni del fuso orario del tuo browser, che riflettono il fuso orario configurato del tuo sistema operativo. Se l'orologio del tuo sistema è configurato in modo errato o stai viaggiando, la visualizzazione dell'orario locale riflette quella impostazione.
Come posso ottenere il timestamp Unix corrente nel codice?
JavaScript: Math.floor(Date.now() / 1000) per i secondi, o Date.now() per i millisecondi. Python: import time; int(time.time()). Go: time.Now().Unix() per i secondi, time.Now().UnixMilli() per i millisecondi. PostgreSQL: EXTRACT(EPOCH FROM NOW()). Bash: date +%s.