Comment convertir une chaîne de caractères en datetime en Python
Ce tutoriel présente comment convertir une string
en datetime
en Python et donne également quelques exemples de codes pour couvrir les formats populaires de datetime
string
.
datetime.strptime()
pour convertir une chaîne en datetime
Dans le tutoriel précédent, nous avons appris comment obtenir la date et l’heure au format chaîne en utilisant la méthode datetime.strftime()
. Nous utiliserons la méthode datetime.strptime()
pour faire la conversion inverse afin d’obtenir l’objet datetime
. f
et p
dans ces deux méthodes signifient respectivement format
et parse
.
La méthode datetime.strptime()
analyse la chaîne d’entrée avec le format datetime
donné et retourne l’objet datetime
.
L’exemple de base pour utiliser cette méthode strptime()
est montré ci-dessous,
from datetime import datetime
datetime.strptime("2018-01-31", "%Y-%m-%d")
Le résultat sera
datetime.datetime(2018, 1, 31, 0, 0)
Les directives des codes de format de chaîne de caractères sont listées ici pour votre référence
Directive | Signification | Exemple |
---|---|---|
%a |
Jour de la semaine comme nom abrégé de la localité. | Sun, Mon, …, Sat (en_US);So, Mo, …, Sa (de_DE) |
%A |
Le jour de la semaine comme nom complet de la localité. | Sunday, Monday, …, Saturday (en_US);Sonntag, Montag, …, Samstag (de_DE) |
%w |
Le jour de la semaine sous forme de nombre décimal, où 0 est le dimanche et 6 le samedi. | 0, 1, …, 6 |
%d |
Le jour du mois en tant que nombre décimal à zéro. | 01, 02, …, 31 |
%b |
Mois comme nom abrégé de la localité. | Jan, Feb, …, Dec (en_US);Jan, Feb, …, Dez (de_DE) |
%B |
Mois comme nom complet de la localité. | January, February, …, December (en_US);Januar, Februar, …, Dezember (de_DE) |
%m |
Mois en tant que nombre décimal à zéro. | 01, 02, …, 12 |
%y |
Année sans siècle comme nombre décimal à zéro. | 00, 01, …, 99 |
%Y |
Année avec le siècle comme nombre décimal. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 |
%H |
L’heure (horloge 24 heures) sous la forme d’un nombre décimal à zéro. | 00, 01, …, 23 |
%I |
L’heure (horloge de 12 heures) sous forme de nombre décimal à zéro. | 01, 02, …, 12 |
%p |
L’équivalent local de AM ou PM. | AM, PM (en_US);am, pm (de_DE) |
%M |
Minute sous forme de nombre décimal à zéro. | 00, 01, …, 59 |
%S |
Deuxième comme un nombre décimal à zéro. | 00, 01, …, 59 |
%f |
Microseconde comme nombre décimal, avec un zéro à gauche. | 000000, 000001, …, 999999 |
%z |
Décalage UTC sous la forme ±HHMM[SS] (chaîne vide si l’objet est naïf). | (vide), +0000, -0400, +1030 |
%Z |
Nom du fuseau horaire (chaîne vide si l’objet est naïf). | (vide), UTC, EST, CST |
%j |
Le jour de l’année en tant que nombre décimal à zéro. | 001, 002, …, 366 |
%U |
Numéro de la semaine de l’année (dimanche comme premier jour de la semaine) sous forme de nombre décimal à zéro capitonné. 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 la semaine de l’année (lundi comme premier jour de la semaine) sous forme de nombre décimal. 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 |
La représentation appropriée de la date et de l’heure de la localité. | Tue Aug 16 21:30:00 1988 (en_US);Di 16 Aug 21:30:00 1988 (de_DE) |
%x |
La représentation de la date appropriée de la localité. | 16/08/88 (None);16/08/1988 (en_US);16.08.1988 (de_DE) |
%X |
La représentation temporelle appropriée de la localité. | 21:30:00 (en_US);21:30:00 (de_DE) |
%% |
Un caractère littéral %% . |
% |
Python datetime.strptime()
Exemples
7-May-2013
format datetime
from datetime import datetime
dateString = "7-May-2018"
dateFormatter = "%u-%b-%Y"
datetime.strptime(dateString, dateFormatter)
Production
datetime.datetime(2013, 5, 1, 0, 0)
31/12/2018
format datetime
from datetime import datetime
dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)
Production
datetime.datetime(2013, 12, 31, 0, 0)
Mon, July 16 2018
datetime
format
from datetime import datetime
dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)
Production
datetime.datetime(2018, 7, 16, 0, 0)
Monday, July 16, 2018 20:01:56
datetime
format
from datetime import datetime
dateString = "Monday, July 16, 2018 20:01:56"
dateFormatter = "%A, %B %d, %Y %H:%M:%S"
datetime.strptime(dateString, dateFormatter)
Production:
datetime.datetime(2018, 7, 16, 20, 1, 56)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArticle connexe - Python String
- Supprimer les virgules de la chaîne en Python
- Comment vérifier qu'une chaîne est vide de manière pythonique
- Convertir une chaîne en nom de variable en Python
- Comment supprimer les espaces dans une chaîne de caractères en Python
- Comment extraire des nombres d'une chaîne de caractèresen Python