web-dev-qa-db-fra.com

en Python, comment puis-je convertir une chaîne en objet date et obtenir l'année, le mois et le jour séparément?

Si je laisse dire cette chaîne "2008-12-12 19:21:10" comment puis-je la convertir en une date et obtenir l'année, le mois et le jour de cet objet créé séparément?

14
Ivan Juarez

Utilisez la fonction datetime.datetime.strptime() :

from datetime import datetime
dt = datetime.strptime(datestring, '%Y-%m-%d %H:%M:%S')

Maintenant, vous avez un objet datetime.datetime, et il a .year , .month et .day attributs:

>>> from datetime import datetime
>>> datestring = "2008-12-12 19:21:10"
>>> dt = datetime.strptime(datestring, '%Y-%m-%d %H:%M:%S')
>>> print dt.year, dt.month, dt.day
2008 12 12
27
Martijn Pieters

https://www.tutorialspoint.com/python/time_strptime.htm Vous pouvez trouver ici la description complète de la méthode strptime (). où vous pouvez trouver tous les types de chaînes. Ex: - Pour convertir une chaîne comme celle-ci '15-MAI-12 '

>>>from datetime import datetime
>>>datestring = "15-MAY-12"
>>>dt = datetime.strptime(datestring, '%d-%b-%Y')
>>>print(dt.year, dt.month, dt.day)enter code here
 2012 MAY 15
1
user8217035

avec millisecondes

>>> from datetime import datetime
>>> datestring = "2018-04-11 23:36:18.886585"
>>> dt = datetime.strptime(datestring, '%Y-%m-%d %H:%M:%S.%f')
>>> print dt.year, dt.month, dt.day
2018 04 11
1
Vijay Krishna

Une chose à ajouter; faites attention à ce que %y correspond à la notation d'année à deux chiffres %Y concerne le code à quatre chiffres:

import datetime

datestring = '15-MAY-12'
print(datetime.datetime.strptime(datestring, '%d-%b-%y'))
>>> datetime.datetime(2012, 5, 15, 0, 0)

datestring = '15-MAY-2012'    
print(datetime.datetime.strptime(datestring, '%d-%b-%Y'))
>>> datetime.datetime(2012, 5, 15, 0, 0)
0
Hamidreza