Python Snippets

Frammenti di timestamp Unix in Python

Esempi Python per il tempo Unix attuale, la conversione da timestamp a datetime, la gestione di UTC, i millisecondi e l'output di data formattato usando la libreria standard.

Current Unix timestamp (seconds)
import time
int(time.time())
Current Unix timestamp (milliseconds)
import time
int(time.time() * 1000)
datetime from timestamp (local)
import datetime
datetime.datetime.fromtimestamp(1700000000)
datetime from timestamp (UTC)
import datetime
datetime.datetime.utcfromtimestamp(1700000000)
# Python 3.2+:
datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc)
Formatted string
import datetime
dt = datetime.datetime.fromtimestamp(1700000000)
dt.strftime("%Y-%m-%d %H:%M:%S")
Timestamp from datetime
import datetime
dt = datetime.datetime(2023, 11, 15, 6, 13, 20, tzinfo=datetime.timezone.utc)
int(dt.timestamp())

Basi dei timestamp in Python

Il time.time() di Python restituisce i secondi dall'epoca Unix come numero in virgola mobile. Avvolgilo con int() per secondi Unix interi, o moltiplicalo per 1000 quando ti servono i millisecondi.

Output datetime con fuso orario

Usa datetime.fromtimestamp(ts, tz=datetime.timezone.utc) per un output UTC esplicito. Evita di affidarti al fuso orario locale del server quando generi valori per log, API o righe di database.

Note di produzione per Python

Python rende facile creare valori datetime sia naive sia con fuso orario, quindi sii consapevole di quale attraversa un confine di sistema. Usa datetime UTC con fuso per API, job pianificati e scritture su database. Converti in un fuso locale solo per la visualizzazione, i report o regole di business che dipendono esplicitamente da un calendario locale.

  • Usa int(time.time()) per secondi Unix interi in script e strumenti da riga di comando
  • Usa int(time.time() * 1000) solo quando il sistema ricevente si aspetta millisecondi
  • Usa datetime.fromtimestamp(ts, tz=timezone.utc) invece del fromtimestamp locale per un output portabile
  • Usa .isoformat() quando ti serve un valore UTC leggibile in log o JSON

datetime today in Python: datetime.today() vs datetime.now()

Le ricerche comuni in Python «datetime today python», «today timestamp python» o «datetime now python utc» trovano risposta nel modulo datetime. datetime.today() e datetime.now() sono quasi identici — entrambi restituiscono un datetime locale naive. Per il codice moderno preferisci datetime.now(timezone.utc), che restituisce un valore UTC con fuso convertibile in sicurezza in un timestamp Unix.

  • datetime.today() → datetime naive nel fuso locale (nessun tzinfo allegato)
  • datetime.now() → come today() a meno che tu non passi un argomento tz
  • datetime.now(timezone.utc) → datetime UTC con fuso (preferito per il nuovo codice)
  • datetime.now(timezone.utc).timestamp() → secondi epoch Unix correnti come float
  • date.today() → la data di oggi senza componente oraria (un oggetto date, non datetime)
  • int(time.time()) → secondi Unix correnti come int — la forma più breve
  • time.time_ns() → nanosecondi epoch correnti (Python 3.7+)

Da string a datetime in Python, da datetime a string

Gli utenti Python che cercano «string to datetime python», «py datetime to string» o «datetime to string» vogliono strptime/strftime o datetime.fromisoformat(). Usa fromisoformat() per input ISO 8601 (Python 3.7+; 3.11 supporta l'ISO 8601 completo incluso l'offset UTC).

  • Da string a datetime python: datetime.fromisoformat('2024-03-15T14:30:00+00:00') — preferito per ISO 8601
  • Da string a datetime python (formato personalizzato): datetime.strptime('2024-03-15 14:30:00', '%Y-%m-%d %H:%M:%S')
  • Py datetime to string / datetime to string: dt.isoformat() restituisce '2024-03-15T14:30:00+00:00'
  • Py datetime to string (formato personalizzato): dt.strftime('%Y-%m-%d %H:%M:%S') restituisce '2024-03-15 14:30:00'
  • Round-trip ISO 8601: datetime.fromisoformat(s).isoformat() — riproduce la stessa stringa
  • Per il timestamp Unix: dt.timestamp() (secondi float); int(dt.timestamp()) per secondi interi
  • Python convert string to date / convert string to date — datetime.fromisoformat(s) per ISO 8601; datetime.strptime(s, fmt) per formati personalizzati
  • Output solo data in Python: date.fromisoformat('2024-03-15') restituisce un oggetto date (senza ora)

FAQ

time.time() restituisce un intero?
No. Restituisce secondi come valore in virgola mobile. Avvolgilo con int() per secondi Unix interi, oppure moltiplica prima di arrotondare quando hai bisogno di millisecondi.
I valori datetime dovrebbero essere naive o consapevoli del fuso?
Usa valori datetime UTC consapevoli del fuso per API, database e log. È meglio evitare i valori datetime naive ai confini del sistema perché il loro significato di fuso è implicito.