Denken Sie daran, und Sie mussten bei der Datums- / Uhrzeitkonvertierung nicht erneut verwirrt werden.
Zeichenfolge zum Datum / Uhrzeit-Objekt = strptime
datetime Objekt in anderen Formaten = strftime
Jun 1 2005 1:33PM
ist gleich
%b %d %Y %I:%M%p
% b Monat als abgekürzter Name des Gebietsschemas (Jun)
% d Tag des Monats als null aufgefüllte Dezimalzahl (1)
% Y Jahr mit Jahrhundert als Dezimalzahl (2015)
% I Stunde (12-Stunden-Uhr) als mit Nullen aufgefüllte Dezimalzahl (01)
% M Minute als null aufgefüllte Dezimalzahl (33)
% p Das Gebietsschema entspricht entweder AM oder PM (PM)
Sie benötigen also Strptime, dh Konvertieren string
in
>>> 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
...
Ausgabe
<type 'datetime.datetime'>
2005-06-01 13:33:00
<type 'datetime.datetime'>
1999-08-28 00:00:00
Was ist, wenn Sie ein anderes Datumsformat haben? Sie können panda oder dateutil.parse verwenden
>>> 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]
Ausgabe
[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()
wird Sie verrückt machen, es sei denn, Sie wickeln es. Siehe meine Antwort, basierend auf der Antwort von Or Weis