So fügen Sie der aktuellen Zeit in Python Stunden hinzu


158

Ich kann die aktuelle Zeit wie folgt abrufen:

from datetime import datetime
str(datetime.now())[11:19]

Ergebnis

'19:43:20'

Jetzt versuche ich 9 hours, die oben genannte Zeit zu verlängern. Wie kann ich der aktuellen Zeit in Python Stunden hinzufügen?


12
Um die aktuelle Zeit so zu formatieren, schauen Sie sichdatetime.now().strftime('%H:%M:%S')
eumiro

Antworten:


365
from datetime import datetime, timedelta

nine_hours_from_now = datetime.now() + timedelta(hours=9)
#datetime.datetime(2012, 12, 3, 23, 24, 31, 774118)

Verwenden Sie dann die Zeichenfolgenformatierung, um die relevanten Teile zu erhalten:

>>> '{:%H:%M:%S}'.format(nine_hours_from_now)
'23:24:31'

Wenn Sie nur die datetime formatieren, können Sie Folgendes verwenden:

>>> format(nine_hours_from_now, '%H:%M:%S')
'23:24:31'

Oder, wie @eumiro in Kommentaren betont hat - strftime


Warum ist das nicht die beste Antwort? Gibt es irgendwelche Nebenwirkungen? nicht gemeldeter Fehler?
Braza

6
@Braza das OP hat sich einfach nicht entschieden, es zu akzeptieren. Keine Nebenwirkungen oder Fehler.
Jon Clements

@ JonClements Vielen Dank für Ihre Antwort :). Ich habe es getestet und bestätige.
Braza

3
Dies ist jedoch nicht DST-sicher.
Antti Haapala

1
In der Frage wird gefragt, wie Stunden hinzugefügt werden sollen. Das Subtrahieren von Stunden kann jedoch auf zwei Arten erfolgen: 1) Verwenden Sie den Subtraktionsoperator ( -) anstelle des Additionsoperators ( +). gemäß der Dokumentation " timedeltaObjekte unterstützen bestimmte Additionen und Subtraktionen mit Datum und datetimeObjekten" 2) Übergeben Sie einen negativen Wert an einen der timedeltaParameter; In der Dokumentation heißt es: "Argumente können Ints, Longs oder Floats sein und können positiv oder negativ sein."
Die rote Erbse

20

Importieren Sie Datetime und Timedelta :

>>> from datetime import datetime, timedelta
>>> str(datetime.now() + timedelta(hours=9))[11:19]
'01:41:44'

Aber der bessere Weg ist:

>>> (datetime.now() + timedelta(hours=9)).strftime('%H:%M:%S')
'01:42:05'

Sie können verweisen strptimeund sich strftimeverhalten, um besser zu verstehen, wie Python Datums- und Zeitfelder verarbeitet


Die Links zu Python-Dokumenten geben Einblicke in das Parsen und Formatieren von Datum und Uhrzeit .
hc_dev
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.