Retour à l'outil
*

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.

Convertir un timestamp Python

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.