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
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
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
- 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.
- strftime formate (date → texte), strptime analyse (texte → date) : %d jour, %m mois, %Y année sur quatre chiffres, %H:%M heure et minutes.
- La différence de deux dates est un timedelta : .days donne le nombre de jours, .total_seconds() la durée exacte.
- 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).
- 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
- JSONLe module json convertit dictionnaires et listes Python en texte JSON, et inversement. C'est le format d'échange des API web, des fichiers de configuration et des exports de nombreux outils.
- Fichiers, pathlib & csvopen avec with lit et écrit des fichiers en les refermant proprement, pathlib.Path manipule les chemins et csv découpe les lignes. Indiquez toujours encoding="utf-8" pour garder les accents.
- pandas — filtrer et sélectionnerUn masque booléen filtre les lignes d'un DataFrame, loc sélectionne par étiquette et iloc par position ; query offre une écriture proche du WHERE de SQL. C'est l'étape qui précède toute analyse.