Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Maîtriser strptime() en Python pour un parsing de dates précis

Python strptime() : Conversion de chaînes en objets datetime

Ce guide montre comment créer des objets datetime à partir de chaînes en utilisant la méthode datetime.strptime() de Python, avec des exemples pratiques et une référence complète des codes de format.

Vidéo : Dates et heures en Python

Regardez le tutoriel officiel Python pour approfondir votre compréhension de la gestion des datetime.

La méthode strptime() crée un objet datetime à partir d'une chaîne qui suit un format spécifié.

Note : Toutes les chaînes ne peuvent pas être analysées ; l'entrée doit correspondre exactement au code de format.


Exemple 1 : Conversion d'une chaîne de date simple

from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
print("type of date_string =", type(date_string))
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
print("type of date_object =", type(date_object))

Lorsque vous exécutez le programme, la sortie sera :

date_string = 21 June, 2018
type of date_string = 
date_object = 2018-06-21 00:00:00
type of date_object = 

Comment fonctionne strptime()

La méthode de classe strptime() accepte deux arguments :

En fonction de ces entrées, la méthode renvoie un objet datetime qui représente le même moment dans le temps.

Dans l'exemple ci-dessus, le code de format %d %B, %Y signifie :


Exemple 2 : Analyse de dates ambiguës

from datetime import datetime
dt_string = "12/11/2018 09:15:32"
# En supposant le format jour/mois/année
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)
# En supposant le format mois/jour/année
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)

Le programme produit :

dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32

Liste complète des codes de format

Le tableau ci-dessous résume toutes les directives utilisables avec strptime(). Pour la documentation complète, consultez le guide officiel du module datetime de Python.

DirectiveSignificationExemple
%aNom abrégé du jour de la semaine.Dim, Lun, ...
%ANom complet du jour de la semaine.Dimanche, Lundi, ...
%wJour de la semaine en nombre décimal.0, 1, ..., 6
%dJour du mois (zéro initial).01, 02, ..., 31
%-dJour du mois (sans remplissage).1, 2, ..., 30
%bNom abrégé du mois.Jan, Fév, ..., Déc
%BNom complet du mois.Janvier, Février, ...
%mNuméro du mois (zéro initial).01, 02, ..., 12
%-mNuméro du mois (sans remplissage).1, 2, ..., 12
%yAnnée sans siècle (zéro initial).00, 01, ..., 99
%-yAnnée sans siècle (sans remplissage).0, 1, ..., 99
%YAnnée avec siècle.2013, 2019, ...
%HHeure (horloge 24h, zéro initial).00, 01, ..., 23
%-HHeure (horloge 24h, sans remplissage).0, 1, ..., 23
%IHeure (horloge 12h, zéro initial).01, 02, ..., 12
%-IHeure (horloge 12h, sans remplissage).1, 2, ..., 12
%pAM ou PM selon la locale.AM, PM
%MMinute (zéro initial).00, 01, ..., 59
%-MMinute (sans remplissage).0, 1, ..., 59
%SSeconde (zéro initial).00, 01, ..., 59
%-SSeconde (sans remplissage).0, 1, ..., 59
%fMicroseconde (zéro initial).000000 – 999999
%zDécalage UTC (+HHMM ou –HHMM).
%ZNom du fuseau horaire.
%jJour de l'année (zéro initial).001, 002, ..., 366
%-jJour de l'année (sans remplissage).1, 2, ..., 366
%UNuméro de semaine (dimanche premier).00, 01, ..., 53
%WNuméro de semaine (lundi premier).00, 01, ..., 53
%cDate et heure locales.Lun 30 Sep 07:06:05 2013
%xDate locale.09/30/13
%XHeure locale.07:06:05
%%Un signe de pourcentage littéral.%

Erreur courante : ValueError

Si la chaîne et le code de format ne correspondent pas, strptime() lève une ValueError. Par exemple :

from datetime import datetime
date_string = "12/11/2018"
# Format incorrect – attend jour mois année
date_object = datetime.strptime(date_string, "%d %m %Y")
print("date_object =", date_object)

L'exécution de ce code produit :

ValueError: time data '12/11/2018' does not match format '%d %m %Y'

Lecture recommandée : Python strftime()

Python

  1. Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
  2. Maîtriser les types de données Python : Guide pratique
  3. Maîtriser les opérateurs Python : Guide complet
  4. Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
  5. Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
  6. Maîtriser les itérateurs Python : fonctionnement et création des vôtres
  7. Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
  8. Expressions régulières Python (module re) — Guide pratique
  9. Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires