Python strptime () - chaîne en objet datetime

Dans cet article, vous apprendrez à créer un objet datetime à partir d'une chaîne (à l'aide d'exemples).

La strptime()méthode crée un objet datetime à partir de la chaîne donnée.

Remarque: vous ne pouvez pas créer d' datetimeobjet à partir de chaque chaîne. La chaîne doit être dans un certain format.

Exemple 1: chaîne en objet datetime

  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 juin 2018 type de date_string = date_object = 2018-06-21 00:00:00 type de date_object = 

Comment fonctionne strptime ()?

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

  • chaîne (qui sera convertie en datetime)
  • code de format

En fonction de la chaîne et du code de format utilisés, la méthode renvoie son datetimeobjet équivalent .

Dans l'exemple ci-dessus:

Ici,

  • %d- Représente le jour du mois. Exemple: 01, 02,…, 31
  • %B- Nom du mois au complet. Exemple: janvier, février etc.
  • %Y- L'année en quatre chiffres. Exemple: 2018, 2019 etc.

Exemple 2: chaîne en objet datetime

  from datetime import datetime dt_string = "12/11/2018 09:15:32" # Considering date is in dd/mm/yyyy format dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Considering date is in mm/dd/yyyy format dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2) 

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

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

Liste des codes de format

Le tableau ci-dessous montre tous les codes de format que vous pouvez utiliser.

Directif Sens Exemple
%a Nom abrégé du jour de la semaine. Dim, lun,…
%A Nom complet du jour de la semaine. Dimanche Lundi,…
%w Jour de la semaine sous forme de nombre décimal. 0, 1,…, 6
%d Jour du mois sous la forme d'un nombre décimal complété par des zéros. 01, 02,…, 31
%-d Jour du mois sous forme de nombre décimal. 1, 2,…, 30
%b Nom du mois abrégé. Janv, fév,…, déc
%B Nom complet du mois. Janvier février,…
%m Mois sous forme de nombre décimal complété par des zéros. 01, 02,…, 12
%-m Mois sous forme de nombre décimal. 1, 2,…, 12
%y Année sans siècle sous forme de nombre décimal complété par zéro. 00, 01,…, 99
%-y Année sans siècle sous forme de nombre décimal. 0, 1,…, 99
%Y Année avec le siècle comme nombre décimal. 2013, 2019 etc.
%H Heure (horloge sur 24 heures) sous forme de nombre décimal complété par zéro. 00, 01,…, 23
%-H Heure (horloge sur 24 heures) sous forme de nombre décimal. 0, 1,…, 23
%I Heure (horloge sur 12 heures) sous forme de nombre décimal complété par zéro. 01, 02,…, 12
%-I Heure (horloge 12 heures) sous forme de nombre décimal. 1, 2,… 12
%p AM ou PM des paramètres régionaux. MATIN APRÈS-MIDI
%M Minute sous forme de nombre décimal complété par des zéros. 00, 01,…, 59
%-M Minute sous forme de nombre décimal. 0, 1,…, 59
%S Second comme un nombre décimal complété par des zéros. 00, 01,…, 59
%-S Deuxième sous forme de nombre décimal. 0, 1,…, 59
%f Microseconde sous forme de nombre décimal, complété par zéro à gauche. 000000 - 999999
%z Décalage UTC sous la forme + HHMM ou -HHMM.
%Z Nom du fuseau horaire.
%j Jour de l'année sous forme de nombre décimal complété par des zéros. 001, 002,…, 366
%-j Jour de l'année sous forme de nombre décimal. 1, 2,…, 366
%U Numéro de semaine de l'année (dimanche comme premier jour de la semaine). Tous les jours d'une nouvelle année précédant le premier dimanche sont considérés comme faisant partie de la semaine 0. 00, 01,…, 53
%W Numéro de semaine de l'année (lundi comme premier jour de la semaine). Tous les jours d'une nouvelle année précédant le premier lundi sont considérés comme faisant partie de la semaine 0. 00, 01,…, 53
%c Représentation appropriée de la date et de l'heure. 30 sept. 07:06:05 2013
%x Représentation de date appropriée de la région. 30/09/13
%X Représentation temporelle appropriée des paramètres régionaux. 07:06:05
%% Un caractère littéral '%'. %

ValueError dans strptime ()

Si la chaîne (premier argument) et le code de format (deuxième argument) passés à strptime()ne correspondent pas, vous obtiendrez ValueError. Par exemple:

  from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object) 

Si vous exécutez ce programme, vous obtiendrez une erreur.

 ValueError: les données d'heure '12 / 11/2018 'ne correspondent pas au format'% d% m% Y ' 

Lectures recommandées: Python strftime ()

Articles intéressants...