🕐
← Torna alle guide

Come convertire i timestamp Unix in date leggibili

· Tag: unix-timestamp, conversion, date-conversion, timezone, epoch-converter

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.