Python Datetime : Travailler avec des dates et des heures

Apprenez à gérer les dates, les heures, les fuseaux horaires et les calculs en Python. Maîtrisez le formatage, l'analyse et l'arithmétique à l'aide de datetime et timedelta.

Essayez dans l'éditeur

Aperçu

La gestion des dates et des heures est un défi notoire dans le développement de logiciels, en raison des années bissextiles, des ajustements à l'heure d'été et des différents formats de fuseau horaire. Python résout ces défis grâce à son module `datetime` intégré. Ce module fournit un ensemble robuste de classes d'objets, telles que « date », « time », « datetime » et « timezone », qui représentent et manipulent proprement les données temporelles, rendant les calculs de date simples.

L'une des tâches les plus courantes consiste à convertir les dates en chaînes (formatage) et les chaînes en dates (analyse). Python utilise deux méthodes principales pour cela : `.strftime()` (heure au format de chaîne) convertit un objet datetime en une chaîne lisible à l'aide de codes de formatage (comme `%Y` pour l'année, `%m` pour le mois et `%d` pour le jour). À l'inverse, `datetime.strptime()` (string analyse time) analyse une entrée de chaîne brute dans un objet datetime basé sur un modèle de format correspondant, ce qui est vital lors de la lecture de journaux ou d'entrées API.

L'exécution de calculs de date est également entièrement prise en charge à l'aide de l'objet `timedelta`. Un « timedelta » représente une durée (par exemple, 7 jours, 4 heures). Vous pouvez ajouter ou soustraire un « timedelta » d'un « datetime » pour calculer des dates passées ou futures (par exemple pour déterminer une date d'expiration). Lorsque vous travaillez avec plusieurs fuseaux horaires, l'utilisation d'objets prenant en compte les fuseaux horaires (tels que « zoneinfo » ou « timezone.utc ») est essentielle pour garantir que les comparaisons de dates restent précises sur différents emplacements de serveur.

Sortie de code et d'exécution

Analyser des chaînes en objets datetime et calculer les délais futurs à l'aide de timedelta.

datetime_demo.py
Essayez dans l'éditeur
from datetime import datetime, timedelta

# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")

# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")

# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")

# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")
Sortie terminale
Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04

Mise en œuvre étape par étape

  • Calculer l'expiration de l'essai et les dates de facturation
  • Analyse des chaînes d'horodatage dans les journaux d'accès au serveur
  • Planification de tâches cron automatisées ou de rapports récurrents

Foire aux questions

Qu'est-ce qu'un objet datetime naïf ou conscient ?

Un objet datetime naïf ne contient pas d'informations de fuseau horaire, alors qu'un objet datetime conscient inclut des décalages de fuseau horaire, ce qui le rend sûr pour les calculs d'heure internationale.

Comment calculer la différence entre deux dates ?

La soustraction d'un objet datetime d'un autre renvoie un objet timedelta représentant la durée exacte entre eux.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.