Aller au contenu
Modules & fichiers

Dates (datetime)

Le module datetime représente dates, heures et durées : calculer un délai, décaler une échéance, formater une date. Convertissez toute date écrite en texte en objet avant de calculer ou de trier.

  • datetime
  • date
  • timedelta
  • strftime
  • strptime
  • fromisoformat
  • fuseau

Syntaxe

Modèle
from datetime import date, datetime, timedeltadate.fromisoformat("2026-11-02")      datetime.strptime(texte, "%d/%m/%Y")d + timedelta(days=30)   d2 - d1      d.strftime("%d/%m/%Y")

Exemple

Exemple concret
from datetime import date, datetime, timedeltacommande = date.fromisoformat("2026-11-02")echeance = commande + timedelta(days=30)print(echeance)                             # → 2026-12-02print(echeance.strftime("%d/%m/%Y"))        # → 02/12/2026print((date(2026, 12, 25) - commande).days) # → 53saisie = datetime.strptime("15/11/2026 14:30", "%d/%m/%Y %H:%M")print(saisie.isoformat())                   # → 2026-11-15T14:30:00print(commande.weekday())                   # → 0   (lundi = 0, dimanche = 6)

À retenir

  1. Le format ISO (AAAA-MM-JJ) se trie correctement même en texte et se lit avec fromisoformat : c'est le format à privilégier pour stocker et échanger des dates.
  2. strftime formate (date → texte), strptime analyse (texte → date) : %d jour, %m mois, %Y année sur quatre chiffres, %H:%M heure et minutes.
  3. La différence de deux dates est un timedelta : .days donne le nombre de jours, .total_seconds() la durée exacte.
  4. Piège : timedelta ne connaît pas les mois, dont la durée varie. Pour « un mois plus tard », utilisez dateutil.relativedelta(months=1) ou pandas.DateOffset(months=1).
  5. Piège : comparer une date naïve (sans fuseau) à une date avec fuseau lève TypeError. Pour des logs horodatés, travaillez avec des fuseaux explicites : datetime.now(timezone.utc) ou ZoneInfo("Europe/Paris") du module zoneinfo.

Voir aussi