Nein, Vergleichsstring vergleichen werden hier nicht funktionieren würde; Die Werte werden nicht nach dem vollen Datum sortiert, sondern nach dem Monat und dem Tag des Monats, wobei die ersten zehn Tage des Monats in dieser Art verstreut sind, da die Tagesnummer nicht mit Null gefüllt ist. Wenn das Jahr zuerst aufgeführt wurde, gefolgt von einem Null gepolsterten numerischen Monat, Tag, Stunden (mit einer 24-Stunden-Uhr) und Minuten, dann könnten Sie es nur als Strings tun, weil dann die lexikographische Sortierung zufällig den Weg passt Datum und Uhrzeit werden sortiert.
Stattdessen analysieren Ihre Zeichenfolge in ein datetime
Objekt mit dem datetime.datetime.strptime()
class method:
dt = datetime.datetime.strptime(string, '%b %d, %Y %I:%M %p')
if dt < datetime.datetime.now():
# in the past.
Demo:
>>> import datetime
>>> string = 'Apr 17, 2016 02:00 AM'
>>> dt = datetime.datetime.strptime(string, '%b %d, %Y %I:%M %p')
>>> dt
datetime.datetime(2016, 4, 17, 2, 0)
>>> dt < datetime.datetime.now()
False
Wenn Sie waren Ihre Daten zu formatieren Sie die ISO8601 combined date-time format verwenden, dann würden Sie eine haben Format, das nur als Zeichenfolgen sortiert werden kann:
>>> datetime.datetime.now().isoformat()
'2016-04-15T09:55:09.907130'