← retour aux snippets

zoneinfo: convertir des dates entre fuseaux

Convertir une date aware UTC en Europe/Paris proprement.

python datetime #zoneinfo#timezone

objectif

Convertir une date aware UTC en Europe/Paris proprement.

code minimal

from datetime import datetime, timezone
from zoneinfo import ZoneInfo

dt = datetime(2025, 1, 1, 12, 0, 0, tzinfo=timezone.utc)
paris = dt.astimezone(ZoneInfo("Europe/Paris"))
print(paris.hour == 13 and paris.tzinfo.key == "Europe/Paris")  # attendu: True

utilisation

from datetime import datetime, timezone
from zoneinfo import ZoneInfo
now_paris = datetime.now(timezone.utc).astimezone(ZoneInfo("Europe/Paris"))
print(now_paris.tzinfo is not None)

variante(s) utile(s)

from datetime import datetime
from zoneinfo import ZoneInfo
naive = datetime(2025, 7, 1, 12, 0, 0)
aware = naive.replace(tzinfo=ZoneInfo("Europe/Paris"))
print(aware.tzinfo is not None)

notes

  • Utilisez des objets “aware” pour éviter les erreurs d’heure d’été.
  • ZoneInfo fait partie de la stdlib (3.9+).