N'oubliez pas ceci et vous n'avez plus besoin de vous perdre dans la conversion datetime.
Chaîne en objet datetime = strptime
objet datetime vers d'autres formats = strftime
Jun 1 2005 1:33PM
est égal à
%b %d %Y %I:%M%p
% b mois comme nom abrégé des paramètres régionaux (juin)
% d Jour du mois sous la forme d'un nombre décimal à zéro (1)
% Y Année avec siècle comme nombre décimal (2015)
% I heure (horloge de 12 heures) sous forme de nombre décimal à zéro (01)
% M Minute sous forme de nombre décimal à zéro (33)
% p équivalent local de AM ou PM (PM)
vous avez donc besoin de strptime c'est- string
à- dire la conversion en
>>> dates = []
>>> dates.append('Jun 1 2005 1:33PM')
>>> dates.append('Aug 28 1999 12:00AM')
>>> from datetime import datetime
>>> for d in dates:
... date = datetime.strptime(d, '%b %d %Y %I:%M%p')
... print type(date)
... print date
...
Production
<type 'datetime.datetime'>
2005-06-01 13:33:00
<type 'datetime.datetime'>
1999-08-28 00:00:00
Et si vous avez différents formats de dates, vous pouvez utiliser panda ou dateutil.parse
>>> import dateutil
>>> dates = []
>>> dates.append('12 1 2017')
>>> dates.append('1 1 2017')
>>> dates.append('1 12 2017')
>>> dates.append('June 1 2017 1:30:00AM')
>>> [parser.parse(x) for x in dates]
Production
[datetime.datetime(2017, 12, 1, 0, 0), datetime.datetime(2017, 1, 1, 0, 0), datetime.datetime(2017, 1, 12, 0, 0), datetime.datetime(2017, 6, 1, 1, 30)]
strptime()
vous rendra fou, à moins que vous ne l'enveloppiez. Voir ma réponse, basée sur la réponse d'Or Weis à cela