Timestamp en Python
Mis à jour : mai 2026
Python sait convertir les timestamps Unix nativement, mais il faut utiliser des objets datetime conscients du fuseau horaire pour éviter les surprises entre local, UTC et serveur.
Gratuit · sans upload · calcul local
Timestamp actuel
import time
seconds = int(time.time())
milliseconds = int(time.time() * 1000)
print(seconds)
print(milliseconds)
Timestamp vers datetime
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
ts = 1735689600
utc = datetime.fromtimestamp(ts, tz=timezone.utc)
paris = datetime.fromtimestamp(ts, tz=ZoneInfo("Europe/Paris"))
print(utc.isoformat())
print(paris.isoformat())
Datetime vers timestamp
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
dt = datetime(2025, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
print(int(dt.timestamp()))
dt_paris = datetime(2025, 1, 1, 0, 0, 0, tzinfo=ZoneInfo("Europe/Paris"))
print(int(dt_paris.timestamp()))
À éviter
datetime.fromtimestamp(ts) sans argument tz utilise le fuseau local de la machine. Sur un serveur Docker, une CI ou une machine de développement, cela peut produire des dates affichées différentes. Préférez datetime.fromtimestamp(ts, tz=timezone.utc).
Millisecondes
ts_ms = 1735689600000
dt = datetime.fromtimestamp(ts_ms / 1000, tz=timezone.utc)
print(dt.isoformat())
Questions fréquentes
time.time() renvoie-t-il un entier ?
Non. time.time() renvoie un float en secondes. Utilisez int(time.time()) pour un timestamp Unix entier.
zoneinfo est-il disponible partout ?
zoneinfo est intégré depuis Python 3.9. Avant cela, utilisez backports.zoneinfo ou pytz.
datetime.utcnow() est-il recommandé ?
Pour du code moderne, préférez datetime.now(timezone.utc), qui crée un datetime conscient du fuseau.