Jak dodać godziny do aktualnego czasu w Pythonie


158

Jestem w stanie uzyskać aktualny czas jak poniżej:

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

Wynik

'19:43:20'

Teraz próbuję dodać 9 hoursdo powyższego czasu, jak mogę dodać godziny do aktualnego czasu w Pythonie?


12
Aby tak sformatować aktualny czas, spójrz nadatetime.now().strftime('%H:%M:%S')
eumiro,

Odpowiedzi:


367
from datetime import datetime, timedelta

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

Następnie użyj formatowania ciągów, aby uzyskać odpowiednie elementy:

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

Jeśli formatujesz tylko datę i godzinę, możesz użyć:

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

Lub, jak zauważył @eumiro w komentarzach - strftime


Dlaczego to nie jest najlepsza odpowiedź? Czy są jakieś skutki uboczne? niezgłoszony błąd?
Braza

6
@Braza OP po prostu nie zdecydował się tego zaakceptować. Brak efektów ubocznych i błędów.
Jon Clements

@JonClements Dziękuję za odpowiedź :). Przetestowałem to i potwierdzam.
Braza

3
Nie jest to jednak bezpieczne dla czasu letniego.
Antti Haapala

1
Pytanie dotyczy dodawania godzin, ale odejmowanie godzin można wykonać na dwa sposoby: 1) Użyj operatora odejmowania ( -) zamiast operatora dodawania ( +); zgodnie z dokumentacją „ timedeltaobiekty obsługują pewne dodania i odejmowania z datą i datetimeobiektami” 2) Podaj wartość ujemną do któregokolwiek z timedeltaparametrów; zgodnie z dokumentacją „Argumenty mogą być typu int, long lub float i mogą być dodatnie lub ujemne”.
Czerwony groszek

20

Importuj datetime i timedelta :

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

Ale lepszym sposobem jest:

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

Możesz odwoływać się strptimei strftimezachowywać, aby lepiej zrozumieć, w jaki sposób Python przetwarza pole daty i czasu


Linki do dokumentów Pythona zapewniają wgląd w analizowanie i formatowanie daty / godziny .
hc_dev
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.