Maîtriser le Module datetime de Python : Dates, Heures, Timedelta & Strftime Expliqués
La bibliothèque datetime de Python offre un ensemble robuste d'outils pour manipuler dates, heures et intervalles de temps. En travaillant avec des objets plutôt que des chaînes brutes ou timestamps, les développeurs peuvent effectuer des calculs précis et du formatage en toute confiance.
Classes Clés de datetime
- date — Gère année, mois et jour.
- time — Gère heure, minute, seconde et microseconde, indépendamment d'une date spécifique.
- datetime — Combine une date et une heure en un seul objet.
- timedelta — Représente une durée, permettant l'addition ou soustraction de dates et heures.
- tzinfo — Base abstraite pour le support des fuseaux horaires.
Démarrage : Importation et Instanciation
Avant toute manipulation, importez les classes nécessaires :
from datetime import date, time, datetime, timedelta
Instanciez un objet date :
today = date.today() print(today) # ex: 2024-04-19
Date et Heure Actuelles
La méthode datetime.now() retourne la date et l'heure locales actuelles :
now = datetime.now() print(now) # 2024-04-19 14:35:12.123456
Pour extraire juste le composant temps :
current_time = now.time() print(current_time) # 14:35:12.123456
Formatage de Sortie avec strftime
La méthode strftime convertit les objets datetime en chaînes lisibles par l'homme en utilisant des codes de format :
now.strftime("%Y-%m-%d %H:%M:%S") # "2024-04-19 14:35:12"
Directives courantes incluent :
%Y— Année sur 4 chiffres.%y— Année sur 2 chiffres.%a— Nom abrégé du jour de la semaine.%A— Nom complet du jour de la semaine.%b— Nom abrégé du mois.%B— Nom complet du mois.%d— Jour du mois (01-31).%H— Heure (00-23).%I— Heure (01-12).%M— Minute (00-59).%S— Seconde (00-59).%p— AM ou PM.
Exemples :
# Format 12h avec AM/PM
print(now.strftime("%I:%M:%S %p"))
# Format 24h
print(now.strftime("%H:%M"))
Travailler avec timedelta
Un timedelta représente un intervalle de temps. Il supporte l'arithmétique avec dates et datetimes :
# Créer un timedelta de 365 jours one_year = timedelta(days=365) # Dans un an future_date = datetime.now() + one_year print(future_date)
Calculer les jours jusqu'à un événement (ex: Nouvel An) :
today = date.today()
new_year = date(today.year, 1, 1)
if new_year < today:
new_year = date(today.year + 1, 1, 1)
print("Le Nouvel An est dans", (new_year - today).days, "jours")
Mettre Tout Ensemble
Voici un script concis, prêt à exécuter, démontrant les fonctionnalités de base :
from datetime import datetime, date, timedelta
# Date et heure actuelles
now = datetime.now()
print("Maintenant :", now)
# Exemples de formatage
print("Format ISO :", now.strftime("%Y-%m-%d %H:%M:%S"))
print("Heure 12h :", now.strftime("%I:%M:%S %p"))
# Opérations timedelta
one_week = timedelta(weeks=1)
print("Dans une semaine :", now + one_week)
# Jours jusqu'au Nouvel An
today = date.today()
new_year = date(today.year + (today < date(today.year, 1, 1)), 1, 1)
print("Jours jusqu'au Nouvel An :", (new_year - today).days)
Résumé
Le module datetime de Python équipe les développeurs avec des outils puissants, type-safe, pour la manipulation de dates et heures :
- Utilisez les objets
date,timeetdatetimepour des représentations claires et explicites. - Exploitez
strftimepour un formatage flexible et sensible à la locale. - Employez
timedeltapour effectuer de l'arithmétique et calculer des intervalles. - N'oubliez pas d'importer les classes pertinentes avant utilisation ; sinon l'interpréteur lèvera des erreurs.
Ces outils sont essentiels pour des tâches allant du simple timestamping à la logique de planification complexe.
Python
- Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires
- Récupérer la date et l'heure actuelles en Python : Guide pratique
- Python : Récupérer l'heure actuelle et les données de fuseau horaire facilement
- Maîtriser le module time de Python : Fonctions, structures et exemples pratiques
- Maîtriser time.sleep() en Python : Bonnes pratiques, multithreading et exemples réels
- Fonction Python print() : Guide pratique avec exemples
- Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples
- Maîtriser les chaînes format() en Python avec exemples clairs
- Maîtriser la méthode String.find() de Python : Syntaxe, Exemples et Alternatives