Come convertire i timestamp Unix in date leggibili
Perché convertire i timestamp Unix?
I timestamp Unix sono ideali per le macchine: un singolo intero è compatto, privo di ambiguità e facile da ordinare. Ma per gli esseri umani, 1785292800 non significa nulla finché non viene tradotto in una data e un'ora del calendario. Che tu stia eseguendo il debug di un file di log, analizzando record di database o leggendo una risposta API, sapere come convertire rapidamente i timestamp è una competenza essenziale.
Metodo 1: Utilizzare il nostro convertitore di timestamp Unix online
Il metodo più veloce e affidabile è utilizzare uno strumento di conversione dedicato.
Il nostro Convertitore di timestamp Unix accetta timestamp sia in secondi che in millisecondi, rileva automaticamente la risoluzione e mostra il risultato su più fusi orari contemporaneamente. Puoi anche percorrere la direzione opposta: inserisci una data leggibile e ottieni il timestamp Unix corrispondente.
Questo approccio è ideale quando hai bisogno di una conversione rapida una tantum senza toccare una riga di comando.
Metodo 2: Utilizzare la riga di comando Linux (comando date)
Se hai accesso a un terminale Linux o macOS, il comando date è il tuo migliore amico.
Convertire un timestamp in una data leggibile
# On GNU Linux (most distributions)
date -d @1785292800
# Specify a custom format
date -d @1785292800 +"%Y-%m-%d %H:%M:%S"
# Output: 2026-07-19 00:00:00
# With timezone
TZ="America/New_York" date -d @1785292800
# Output: Sun Jul 19 00:00:00 EDT 2026
Su macOS (date BSD), la sintassi è leggermente diversa:
# On macOS
date -r 1785292800
# With custom format
date -r 1785292800 +"%Y-%m-%d %H:%M:%S"
Convertire una data in un timestamp Unix
# On GNU Linux
date -d "2026-07-19 00:00:00" +%s
# On macOS
date -j -f "%Y-%m-%d %H:%M:%S" "2026-07-19 00:00:00" +%s
Metodo 3: Calcolo manuale
Sebbene raramente tu debba farlo a mano, comprendere la matematica demistifica il funzionamento del sistema.
La formula
seconds = (year - 1970) × 31536000 + (month offset) × 86400 + day × 86400 + hours × 3600 + minutes × 60 + seconds
La parte delicata è tenere conto degli anni bisestili. Un anno è bisestile se è divisibile per 4, ad eccezione degli anni di secolo non divisibili per 400.
Stime mentali rapide
- 86.400 secondi = 1 giorno
- 604.800 secondi = 1 settimana
- Circa 31.536.000 secondi = 1 anno comune
- Circa 31.622.400 secondi = 1 anno bisestile
Per una stima approssimativa, puoi calcolare timestamp / 86400 per ottenere il numero di giorni dall'epoch, quindi aggiungere quei giorni al 1° gennaio 1970.
Metodo 4: Utilizzare i linguaggi di programmazione
Ogni linguaggio di programmazione principale dispone di funzioni integrate per la conversione dei timestamp. Ecco i più comuni:
JavaScript (Browser o Node.js)
// Timestamp to date (JavaScript uses milliseconds)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000);
console.log(date.toISOString());
// Output: 2026-07-19T00:00:00.000Z
// Date to timestamp
const ts = Math.floor(new Date("2026-07-19").getTime() / 1000);
console.log(ts);
// Output: 1785292800
Python
from datetime import datetime
# Timestamp to date
dt = datetime.utcfromtimestamp(1785292800)
print(dt.isoformat())
# Output: 2026-07-19T00:00:00
# Timezone-aware (Python 3.9+)
from zoneinfo import ZoneInfo
dt_tz = datetime.fromtimestamp(1785292800, tz=ZoneInfo("America/New_York"))
print(dt_tz.isoformat())
# Output: 2026-07-19T00:00:00-04:00
# Date to timestamp
import time
ts = time.mktime(datetime(2026, 7, 19).timetuple())
print(ts)
PHP
<?php
// Timestamp to date
echo date("Y-m-d H:i:s", 1785292800);
// Output: 2026-07-19 00:00:00
// Date to timestamp
echo strtotime("2026-07-19 00:00:00");
// Output: 1785292800
Metodo 5: Utilizzare software per fogli di calcolo
Google Sheets
Usa la formula =DATE(1970,1,1) + A1 / 86400 dove A1 contiene il timestamp. Formatta la cella del risultato come data.
Microsoft Excel
=DATE(1970,1,1) + A1 / 86400
Su Excel per Windows, potresti aver bisogno di:
=(A1 / 86400) + DATE(1970,1,1)
Casi limite a cui prestare attenzione
Secondi vs millisecondi
Questo è l'errore più comune. Se passi un valore in millisecondi (ad es. 1785292800000) a una funzione che si aspetta secondi, otterrai una data di circa 56.000 anni nel futuro.
Come rilevarlo:
- Se il numero è composto da 10 cifre, probabilmente sono secondi
- Se il numero è composto da 13 cifre, probabilmente sono millisecondi
- Alcuni sistemi utilizzano anche microsecondi (16 cifre) o nanosecondi (19 cifre)
Timestamp negativi (date precedenti al 1970)
I timestamp Unix possono rappresentare date precedenti all'epoch utilizzando numeri negativi:
date -d @-126230400
# Output: Tue Dec 31 00:00:00 -1969
Non tutti gli strumenti di conversione gestiscono correttamente i timestamp negativi. Il nostro convertitore online sì.
Secondi intercalari
Il tempo Unix ignora i secondi intercalari per progettazione. Un timestamp Unix non mostrerà mai :59:60 nemmeno durante l'inserimento di un secondo intercalare. Ciò significa che il timestamp diverge dal tempo atomico di una quantità piccola (attualmente 27 secondi) ma in crescita.
Riepilogo
| Metodo | Ideale per |
|--------|----------|
| Convertitore online (/linux-timestamp) | Conversioni rapide una tantum |
| Comando date | Utenti del terminale e script |
| Calcolo manuale | Comprendere come funziona |
| Linguaggi di programmazione | Automazione e applicazioni |
| Fogli di calcolo | Analisi dei dati |
Utilizza il nostro Convertitore di timestamp Unix per eseguire conversioni immediate e accurate con rilevamento automatico del fuso orario.