objectif
Traiter les heures ambiguës lors des changements d’heure.
code minimal
from zoneinfo import ZoneInfo
from datetime import datetime
# Exemple générique (heure locale non garantie ici)
dt = datetime(2021, 11, 7, 1, 30)
aware = dt.replace(tzinfo=ZoneInfo("America/New_York"))
print(hasattr(aware, "fold")) # attendu: True
utilisation
from zoneinfo import ZoneInfo
from datetime import datetime
tz = ZoneInfo("Europe/Paris")
naive = datetime(2021, 10, 31, 2, 30)
one = naive.replace(tzinfo=tz, fold=0)
two = naive.replace(tzinfo=tz, fold=1)
print(one.fold == 0 and two.fold == 1)
variante(s) utile(s)
from datetime import datetime, timezone
print(datetime.now(timezone.utc).tzinfo is not None)
notes
- L’attribut fold désambiguïse les heures dupliquées lors du passage heure d’été/hiver.
- Préférez stocker en UTC et convertir en affichage.