Comment analyser une chaîne en une date/heure en Python (strptime)
Découvrez comment convertir des chaînes en objets datetime en Python. Maîtrisez la méthode strptime, analysez les chaînes de date, gérez les fuseaux horaires et évitez les erreurs de format.
Aperçu
Lors de la création d'applications qui traitent les soumissions de formulaires utilisateur, grattent des bases de données Web, analysent les journaux du serveur ou importent des feuilles CSV, vous recevrez fréquemment des informations de date et d'heure sous forme de chaînes de texte brut (par exemple, « 2026-05-25 15:45 »). Étant donné que vous ne pouvez pas effectuer de calculs, d'arithmétique de date ou de tri sur des chaînes, vous devez les analyser dans des objets datetime Python.
La méthode principale pour cette conversion est `datetime.strptime(date_string, format_string)`. Le nom signifie « temps d'analyse de chaîne ». La fonction prend la chaîne de date brute et un modèle de format contenant des directives (comme `%Y` pour l'année, `%m` pour le mois et `%d` pour le jour) et renvoie un objet datetime correspondant.
Si la chaîne d'entrée ne correspond pas exactement au modèle de format fourni, Python génère une « ValueError ». Pour éviter les plantages, enveloppez toujours les opérations `strptime()` dans un bloc `try-sauf`. Pour les applications analysant diverses entrées de date non structurées, des bibliothèques externes telles que « python-dateutil » peuvent aider à automatiser la détection de l'analyseur.
Sortie de code et d'exécution
Ce script montre l'analyse des chaînes de date à l'aide de datetime.strptime, la gestion des entrées non valides et le calcul des différences de date.
from datetime import datetime
# 1. Basic parsing using strptime
date_str = "2026-05-25 18:30:00"
format_template = "%Y-%m-%d %H:%M:%S"
parsed_date = datetime.strptime(date_str, format_template)
print("Parsed DateTime:", parsed_date)
print("Month parsed:", parsed_date.month)
print("Hour parsed:", parsed_date.hour)
# 2. Handling parse errors safely
bad_date_str = "25/05/2026"
try:
datetime.strptime(bad_date_str, "%Y-%m-%d")
except ValueError as e:
print(f"\nParse Error: {e}")
# Correcting the format
corrected_date = datetime.strptime(bad_date_str, "%d/%m/%Y")
print("Corrected Parse:", corrected_date.date())Parsed DateTime: 2026-05-25 18:30:00
Month parsed: 5
Hour parsed: 18
Parse Error: time data '25/05/2026' does not match format '%Y-%m-%d'
Corrected Parse: 2026-05-25Mise en œuvre étape par étape
- Importez la classe datetime depuis le module datetime.
- Identifiez la structure exacte de votre chaîne de date (par exemple, jour, mois, séparateurs).
- Appelez datetime.strptime(date_string, format_pattern) avec les directives appropriées (comme %Y, %m, %d).
- Enveloppez l'instruction d'analyse dans un bloc try-sauf ValueError pour gérer les chaînes mal formées avec élégance.
Foire aux questions
Quelle est la différence entre strftime et strptime ?
strptime (string parse time) analyse une chaîne pour créer un objet datetime. strftime (string format time) formate un objet datetime en une représentation sous forme de chaîne lisible.
Comment analyser les chaînes de date ISO 8601 (par exemple, "2026-05-25T18:30:00Z") ?
DansPython 3.7+, vous pouvez utiliser la fonction intégrée datetime.fromisoformat(string), qui gère efficacement les chaînes ISO sans nécessiter de modèle de formatage manuel.
Sujets connexes
Découvrez comment obtenir la date et l'heure actuelles en Python à l'aide du module datetime. Formatez les dates en chaînes avec strftime et gérez les fuseaux horaires.
Comment convertir une chaîne en Int en PythonApprenez à convertir une chaîne en entier en Python à l'aide de la fonction int(). Gérez les erreurs en toute sécurité et convertissez les nombres binaires, octaux ou hexadécimaux.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Chaînes Python
Maîtrisez la manipulation des chaînes en Python. Apprenez les méthodes de chaîne, les techniques de découpage, de concaténation et de formatage avec des exemples de code clairs et exécutables.
Aide-mémoire sur les méthodes de chaîne Python
Un guide de référence complet pour la manipulation des chaînes Python. Maîtrisez le formatage, la recherche, le fractionnement, le remplacement et la vérification des propriétés des chaînes.
Décorateurs Python et modèle de conception de décorateur : les principales différences
Comparez les décorateurs Python et le modèle de conception de décorateur classique. Comprenez les différences entre l'encapsulation de fonctions au moment de la définition et la composition d'objets dynamiques d'exécution avec du code exécutable.