Convertitore di Timestamp Unix
Introduzione
Un timestamp Unix (o tempo epoch) è il modo standard con cui i computer rappresentano il tempo: un singolo intero che conta i secondi trascorsi dal 1 gennaio 1970 a mezzanotte UTC, escludendo i secondi intercalari. Appare in record di database, risposte API, token JWT, file di log, schedule cron e intestazioni di cache. Mentre le macchine leggono questi interi all'istante, gli umani hanno bisogno che vengano tradotti in date e orari del calendario — spesso in formati multipli simultaneamente.
Il Convertitore di Timestamp Unix serve sviluppatori, amministratori di sistema e analisti di sicurezza che devono decodificare timestamp da log, verificare la scadenza di token, pianificare job cron tra fusi orari o cercare rapidamente un valore epoch storico o futuro. Lo strumento è suddiviso in due blocchi indipendenti:
- Blocco A (Timestamp Unix → Data e Ora): inserisci un timestamp numerico e visualizzalo in 21 formati di data e ora, organizzati per famiglia standard.
- Blocco B (Data e Ora → Timestamp Unix): scegli una data del calendario, un'ora e un offset fuso orario, e ottieni il timestamp equivalente in secondi, millisecondi e microsecondi.
Entrambi i blocchi hanno il proprio selettore del fuso orario, così puoi lavorare in UTC per una direzione e con un offset personalizzato per l'altra senza interferenze.
Come funziona
Il tempo Unix conta i secondi dall'epoch (1 gennaio 1970, 00:00:00 UTC). Ogni tick aggiunge esattamente un secondo. Poiché è ancorato a UTC, un timestamp Unix rappresenta lo stesso istante ovunque sulla Terra — il fuso orario conta solo quando lo converti in una stringa leggibile.
Lo strumento utilizza l'oggetto JavaScript Date nativo del browser per tutte le conversioni. Ogni Date memorizza internamente il tempo come un singolo numero: millisecondi dall'epoch Unix. Quando inserisci un timestamp, lo strumento costruisce un Date e legge le sue proprietà UTC o locali a seconda del selettore del fuso orario attivo. Quando inserisci una data e un'ora del calendario, lo strumento calcola la differenza dall'epoch aggiustata per l'offset del fuso orario specificato.
Unità dei timestamp nei vari ecosistemi
Piattaforme e linguaggi diversi usano unità epoch differenti. Il selettore delle unità dello strumento ti permette di abbinare la precisione della tua fonte:
| Unità | Utilizzato da | Esempio |
|---|---|---|
| Secondi | Go, PHP, Python, PostgreSQL, Ruby, cron | 10 cifre |
| Millisecondi | JavaScript (Date.now()), Ethereum, .NET DateTimeOffset, Java System.currentTimeMillis() |
13 cifre |
| Microsecondi | Linux /proc/uptime, Go time.UnixMicro(), profiling ad alta risoluzione |
16 cifre |
Lo strumento converte il tuo input in secondi internamente. Se incolli un valore a 13 cifre da Date.now() di JavaScript, imposta l'unità su millisecondi e lo strumento gestirà la divisione.
Fuso orario e ora legale
Un timestamp Unix rappresenta sempre lo stesso istante fisico. Il selettore del fuso orario in ogni blocco cambia solo come quell'istante viene visualizzato o interpretato.
- Modalità UTC: visualizza tutto l'output in base al Tempo Coordinato Universale. Il formato RFC 3339 usa un suffisso
Zletterale invece di+00:00. - Modalità locale: usa il fuso orario di sistema del browser, inclusi gli aggiustamenti automatici dell'ora legale.
- Modalità personalizzata: un offset UTC numerico tra -12:00 e +14:00. Lo strumento applica questo offset direttamente senza alcuna correzione dell'ora legale — tratta il tuo offset come un orario fisso.
Quando l'ora legale è in effetto, l'offset del fuso orario locale cambia. Lo stesso timestamp visualizzato in modalità Locale potrebbe mostrare un'ora diversa rispetto al mese precedente. È normale: il timestamp è lo stesso, ma la convenzione dell'orario locale è cambiata.
Per le righe in formato locale (Locale, Locale Date, Locale Time), lo strumento rispetta sia il fuso orario selezionato che le impostazioni linguistiche del browser. Se scegli la modalità UTC, toLocaleString riceve { timeZone: 'UTC' }, assicurando che il formato locale usi il fuso orario corretto.
Utilizzo
Blocco A — Timestamp in Data e Ora
- Inserisci un timestamp Unix nel campo di input (solo cifre, segno meno opzionale per date precedenti al 1970).
- Seleziona la precisione dell'input: Secondi, Millisecondi o Microsecondi.
- Scegli un fuso orario: UTC, Locale (fuso orario di sistema), o Personalizzato (inserisci un offset tra -12 e +14 con passi da mezz'ora).
- Leggi i risultati — 21 righe di formati di data e ora si aggiornano in tempo reale.
Blocco B — Data e Ora in Timestamp
- Inserisci l'anno direttamente. Usa i menu a discesa per mese, giorno, ora, minuto e secondo.
- Scegli un fuso orario dal selettore UTC/GMT: Locale corrisponde al fuso orario di sistema; inserimenti numerici come
UTC+8trattano l'input come orario locale in quel fuso. - I risultati del timestamp appaiono immediatamente in secondi, millisecondi, microsecondi, esadecimale e tempo relativo.
I due blocchi operano indipendentemente. Modificare il Blocco A non influisce sul Blocco B e viceversa. Questo ti permette di confrontare timestamp fianco a fianco o bloccare un valore di riferimento mentre esplori formati diversi.
Tutorial
Scenario 1: Decodificare un timestamp da un log del server
Il tuo log applicativo mostra il timestamp 1742345678 — una chiamata API che è fallita. Devi sapere esattamente quando è successo e anche controllare il formato HTTP-date per correlare con le intestazioni delle risposte HTTP.
- Apri il Convertitore di Timestamp Unix.
- Digita
1742345678nel campo di input del Blocco A. - I risultati mostrano 21 righe di formato, inclusi:
- @ Format:
3/19/2025 @ 2:14:38 PM +0000(formato umano a scansione rapida) - RFC 1123Z:
Wed, 19 Mar 2025 14:14:38 +0000(standard HTTP-date, corrisponde alle intestazioniDateeLast-Modified) - Relative:
124d(quanto tempo fa è avvenuta la richiesta)
- @ Format:
- Cambia il fuso orario su Locale per vedere che ora era nel tuo fuso orario.
Scenario 2: Pianificare un job cron a un orario specifico
Hai bisogno che un job cron venga eseguito alle 3:30 AM Eastern Time il 15 giugno 2026. L'Eastern Daylight Time è UTC-4 a giugno.
- Nel Blocco B, imposta la data al 15 giugno 2026 e l'ora a 03:30:00.
- Imposta il selettore UTC/GMT su
UTC+4(EDT è UTC-4, quindi inserisci -4). - Leggi il valore in Secondi — questo è il tuo timestamp cron. Le righe Hex e Relative si aggiornano anch'esse, dandoti un riferimento sia machine-readable che human-readable simultaneamente.
Consigli utili
Casi d'uso dei formati
Ogni formato di output serve a uno scopo specifico. Ecco quando usarli:
| Formato | Quando usarlo |
|---|---|
| @ Format | Scansione visiva rapida — il layout compatto M/D/YYYY @ HH:MM:SS AM/PM è leggibile a colpo d'occhio |
| DateTime | Inserimenti in database SQL (YYYY-MM-DD HH:MM:SS), la forma stringa più comune al di fuori di JSON |
| ISO 8601 | Payload JSON (new Date().toISOString()), corpi di richieste/risposte REST API |
| RFC 3339 | Feed RSS, feed Atom, abbonamenti calendario (iCalendar); usato dove ISO 8601 necessita di un profilo più stretto |
| RFC 1123Z | Intestazioni HTTP (Date, Last-Modified, Expires), cookie (attributo expires) |
| RFC 822 | Intestazioni email (campo Date), formati legacy di newsgroup |
| RFC 850 | Vecchie implementazioni HTTP/1.0 (rare oggi, mantenuto per retrocompatibilità) |
| ANSIC | Costante time.ANSIC di Go — usata quando si legge l'output predefinito di time.Time di Go |
| RubyDate | Formato Time#ctime di Ruby; corrisponde all'output classico Unix ctime |
| DateOnly / TimeOnly | Costanti di convenienza Go 1.20+ — estrae solo la data o solo l'ora |
| Kitchen | Formato orologio a 12 ore di Go — lettura rapida dell'orario |
| Locale | Visualizzazione nell'interfaccia utente; rispetta le convenzioni linguistiche e culturali del browser |
| Hex | Debug di basso livello, timestamp firmware, sistemi embedded |
| Relative | Dashboard, elementi UI "tempo dall'ultimo evento" |
Implementazioni nei linguaggi
Ottieni il timestamp Unix corrente nel tuo linguaggio preferito:
// Go
time.Now().Unix() // secondi
time.Now().UnixMilli() // millisecondi (Go 1.17+)
// JavaScript
Math.floor(Date.now() / 1000) // secondi
Date.now() // millisecondi
// PHP
time(); // secondi
intval(microtime(true) * 1000); // millisecondi
# Python
import time; int(time.time()) # secondi
import time; int(time.time() * 1000) # millisecondi
Consigli generali
- Timestamp pre-1970: Inserisci valori negativi. Il 1 dicembre 1960 alle 00:00:00 UTC è
-286329600. - Input esadecimale: I valori esadecimali (con o senza prefisso
0x) vengono analizzati automaticamente — inserisci0x6618E1FEe vedi l'equivalente decimale. - Confrontare fusi orari: Imposta il fuso orario del Blocco A su UTC e il fuso orario del Blocco A su Local contemporaneamente per vedere come lo stesso istante viene visualizzato in entrambi.
Alternative
| Strumento | Timestamp in Data | Data in Timestamp | 21+ Formati | Fuso orario indipendente per blocco | Lato client |
|---|---|---|---|---|---|
| Toollect Unix Timestamp Converter | Sì | Sì | Sì (21) | Sì | Sì |
| unixtimestamp.com | Sì | Sì | ~5 | No | Sì |
| epochconverter.com | Sì | Sì | ~8 | No | Sì |
| site24x7.com | Sì | Sì | ~6 | IANA completo | Sì |
date -d @timestamp (Linux) |
Sì | No | ~3 | Solo TZ sistema | N/D |
Risoluzione dei problemi
| Problema | Causa probabile | Soluzione |
|---|---|---|
| L'output mostra una data nel 1970 o 1969 | L'input viene letto nell'unità sbagliata | Cambia il selettore dell'unità in modo che corrisponda al tuo input (secondi / ms / μs) |
| Data e ora mostrano il momento sbagliato | Il selettore del fuso orario è impostato in modo errato | Passa a UTC per verificare l'istante di base, poi regola con l'offset corretto |
| La riga Locale mostra l'ora sbagliata | La formattazione Locale ignora la selezione del fuso orario del Blocco A | Questo è stato corretto — ora il locale rispetta il fuso orario selezionato. Verifica di essere sull'ultima versione |
| L'output non si aggiorna | L'input contiene caratteri non numerici | Pulisci il campo e inserisci solo cifre e un eventuale segno meno iniziale |
| Il tempo relativo mostra "just now" per un timestamp passato noto | Il relativo è calcolato rispetto all'orologio di sistema corrente | Normale — il tempo relativo confronta sempre il timestamp con "adesso" |
| L'input a 13 cifre mostra una data molto nel futuro | L'input è in millisecondi ma l'unità predefinita è secondi | Cambia l'unità su "Millisecondi" |
Specifiche tecniche
- Motore di conversione: Oggetto JavaScript
Date(standard ECMAScript) - Intervallo timestamp: Intero intervallo numerico JavaScript (±9 quadrilioni di secondi, che copre miliardi di anni)
- Input supportato: Interi decimali, valori negativi (pre-1970)
- Precisione input: Secondi, millisecondi o microsecondi (configurabile)
- Supporto fusi orari: UTC, locale (sistema browser), offset GMT personalizzato (-12 a +14 con passi da 0,5 ore); indipendente per ogni blocco
Le 21 famiglie di formati
| # | Gruppo | Formato | Esempio |
|---|---|---|---|
| 1 | Comune | @ Format | 3/19/2025 @ 2:14:38 PM +0000 |
| 2 | Comune | DateTime | 2025-03-19 14:14:38 |
| 3 | Comune | ISO 8601 | 2025-03-19T14:14:38+00:00 |
| 4 | Comune | RFC 3339 | 2025-03-19T14:14:38Z (UTC usa Z) |
| 5 | RFC | RFC 1123Z | Wed, 19 Mar 2025 14:14:38 +0000 |
| 6 | RFC | RFC 822 | 19 Mar 25 14:14 UTC |
| 7 | RFC | RFC 822Z | 19 Mar 25 14:14 +0000 |
| 8 | RFC | RFC 1123 | Wed, 19 Mar 2025 14:14:38 UTC |
| 9 | RFC | RFC 850 | Wednesday, 19-Mar-25 14:14:38 UTC |
| 10 | Go | ANSIC | Wed Mar 19 14:14:38 2025 |
| 11 | Go | UnixDate | Wed Mar 19 14:14:38 UTC 2025 |
| 12 | Go | RubyDate | Wed Mar 19 14:14:38 +0000 2025 |
| 13 | Go | DateOnly | 2025-03-19 |
| 14 | Go | TimeOnly | 14:14:38 |
| 15 | Go | Kitchen | 2:14PM |
| 16 | Go | Stamp | Mar 19 14:14:38 |
| 17 | Locale | Locale | 3/19/2025, 2:14:38 PM (dipende dal browser) |
| 18 | Locale | Locale Date | 3/19/2025 |
| 19 | Locale | Locale Time | 2:14:38 PM |
| 20 | Altro | Hex | 0x6618E1FE |
| 21 | Altro | Relative | 124d |
Albero genealogico dei formati
I formati di data e ora in questo strumento derivano da quattro lignaggi:
- RFC 822 (1982) ha definito il formato originale delle date email con un anno a 2 cifre. RFC 1123 (1989) lo ha sostituito con un anno a 4 cifre. RFC 1123Z è lo stesso formato che usa un offset numerico del fuso orario (
+0000) invece di un'abbreviazione alfabetica (UTC). Insieme coprono le intestazioni HTTP (1123Z) e i formati email (822). - ISO 8601 (1988) ha stabilito lo standard internazionale per la rappresentazione di data e ora. RFC 3339 (2002) profila ISO 8601 per uso Internet, aggiungendo requisiti come la
Zobbligatoria per UTC. La maggior parte delle API moderne sceglie uno di questi due. - Costanti Go time (
ANSIC,UnixDate,RubyDate, ecc.) sono layout di convenienza integrati nella libreria standard di Go. Rispecchiano le convenzioni POSIX (ctimeoutput), gli standard RFC e forme di convenienza specifiche di Go (DateOnly,Kitchen,Stamp). - Formati Locale usano l'API
Intl.DateTimeFormatdel browser, che segue il Unicode Common Locale Data Repository (CLDR). L'output esatto dipende dall'impostazione linguistica del browser dell'utente.
Compatibilità
- Browser: Chrome 90+, Firefox 90+, Safari 15+, Edge 90+
- Dipendenze: Nessuna — JavaScript puro, zero librerie di terze parti
- Elaborazione dati: 100% lato client — zero richieste di rete
Caratteristiche
- Conversione bidirezionale tra timestamp Unix e date leggibili
- Visualizzazione in tempo reale del timestamp Unix corrente con aggiornamenti automatici
- Molteplici formati di output: UTC, ora locale, ISO 8601, esadecimale e tempo relativo
- Supporto per offset fuso orario personalizzato per conversione accurata da data a timestamp
- Elaborazione lato client — nessun dato inviato a server