Lembre-se disso e você não precisou se confundir na conversão de data e hora novamente.
String para objeto datetime = strptime
objeto datetime para outros formatos = strftime
Jun 1 2005 1:33PM
é igual a
%b %d %Y %I:%M%p
% b Mês como nome abreviado da localidade (junho)
% d Dia do mês como um número decimal preenchido com zero (1)
% Y Ano com o século como um número decimal (2015)
% I hora (relógio de 12 horas) como um número decimal preenchido com zero (01)
% M Minuto como um número decimal preenchido com zero (33)
% p O equivalente da localidade de AM ou PM (PM)
então você precisa de tempo de atividade, ou seja, a conversão string
para
>>> 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
...
Resultado
<type 'datetime.datetime'>
2005-06-01 13:33:00
<type 'datetime.datetime'>
1999-08-28 00:00:00
E se você tiver um formato diferente de datas, poderá usar 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]
Resultado
[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()
vai deixá-lo louco, a menos que você o enrole. Veja minha resposta, com base na resposta da Or Weis a isto