maîtriser le module datetime est essentiel pour tout programme qui gère le temps. python fournit aussi time pour des mesures simples.
objectifs
- créer et formater des dates et heures
- calculer des durées
- gérer les fuseaux horaires de base
- convertir timestamp ↔ datetime
explication détaillée
datetime.datetime.now()donne la date et l’heure localesdatetime.date.today()donne uniquement la datedatetime.timedeltareprésente une duréedatetime.strptimeetstrftimepermettent de parser/formattertime.time()retourne un timestamp (secondes depuis 1970-01-01 UTC)- fuseaux :
zoneinfo.ZoneInfodepuis python 3.9
exemples exécutables
from datetime import datetime, timedelta, date
from zoneinfo import ZoneInfo
# date et heure actuelles
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
# ajouter 5 jours
plus_5 = now + timedelta(days=5)
print(plus_5)
# différence entre 2 dates
d1 = date(2025, 1, 1)
d2 = date(2025, 8, 1)
print((d2 - d1).days, "jours")
# fuseau
paris = datetime.now(tz=ZoneInfo("Europe/Paris"))
ny = paris.astimezone(ZoneInfo("America/New_York"))
print("Paris:", paris)
print("NY:", ny)
# timestamp
ts = time.time()
print(datetime.fromtimestamp(ts))
bonnes pratiques
- stocker en UTC, afficher dans le fuseau local
- éviter les calculs manuels de dates (utiliser
timedelta) - toujours préciser le fuseau si l’heure est critique
pièges courants
- oublier que
now()par défaut est naïf (pas de fuseau) - confondre mois/jours avec
timedelta(pas de notion de mois) - erreurs de format dans
strptime
exercices
- afficher la date dans 100 jours.
- calculer le nombre de jours depuis votre naissance.
- convertir un datetime paris en datetime new york.