Python datetime - Feste Stunde und Minute nach Verwendung von strptime zum Abrufen von Tag, Monat und Jahr


173

Ich habe erfolgreich etwas vom 26 Sep 2012Format in Folgendes konvertiert 26-09-2012:

datetime.strptime(request.POST['sample_date'],'%d %b %Y')

Ich weiß jedoch nicht, wie ich die Stunde und Minute von etwas wie dem oben genannten auf 11:59 einstellen soll. Weiß jemand, wie man das macht?

Beachten Sie, dass dies ein zukünftiges oder ein beliebiges Datum sein kann, nicht nur das aktuelle Datum.

Antworten:


362

Verwendung datetime.replace:

from datetime import datetime
date = datetime.strptime('26 Sep 2012', '%d %b %Y')
newdate = date.replace(hour=11, minute=59)

Danke für die schnelle Antwort! :) Nur neugierig, ob es eine Möglichkeit gibt, dies ohne die zusätzliche Datumsvariable zu tun? (Ich bin ein Python-Neuling)
— user1678031

2
Ja, tu es einfach date = datetime.strptime('26 Sep 2012', '%d %b %Y').replace(hour=11, minute=59). Ich habe die zusätzliche Variable verwendet, damit die Zeile nicht zu lang ist :)
— nneonneo

14
Ebenfalls erwähnenswert: Gibt datetime.replaceeine neue Kopie der datetime zurück (da datetimeunveränderlich ist): es ist str.replacein dieser Hinsicht ähnlich .
— Nneonneo

Wie kann ich nach dem 01.06.2016 alles entfernen, damit Stunde, Minute und Sekunde verschwinden?
— PV8

46

datetime.replace () bietet die besten Optionen. Außerdem können Tag, Jahr und Monat ersetzt werden.

Angenommen, wir haben ein datetimeObjekt und das Datum wird wie folgt dargestellt: "2017-05-04"

>>> from datetime import datetime
>>> date = datetime.strptime('2017-05-04',"%Y-%m-%d")
>>> print(date)
2017-05-04 00:00:00
>>> date = date.replace(minute=59, hour=23, second=59, year=2018, month=6, day=1)
>>> print(date)
2018-06-01 23:59:59

8
Was ist der Mehrwert Ihrer Antwort gegenüber der Antwort von nneonneo, die 5 Jahre vor Ihrer veröffentlicht wurde?
— Samuel Dauzon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.