Como adicionar horas ao horário atual em python

158

Consigo obter a hora atual como abaixo:

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

Resultado

'19:43:20'

Agora, estou tentando adicionar 9 hoursao tempo acima, como posso adicionar horas ao tempo atual no Python?

Shiva Krishna Bavandla
fonte
12
Para obter a hora atual formatada dessa maneira, dê uma olhada emdatetime.now().strftime('%H:%M:%S')
eumiro 3/12/12

Respostas:

368
from datetime import datetime, timedelta

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

E, em seguida, use a formatação de string para obter as partes relevantes:

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

Se você estiver formatando apenas o datetime, poderá usar:

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

Ou, como @eumiro apontou nos comentários - strftime

Jon Clements
fonte
Por que essa não é a melhor resposta? Existe algum efeito colateral? bug não relatado?
Braza 28/03
6
@Braza, o OP simplesmente não escolheu aceitá-lo. Sem efeitos colaterais ou bugs.
Jon Clements
@ JonClements Obrigado pela sua resposta :). Eu testei e confirmo.
Braza 28/03
3
Isso não é seguro para o horário de verão.
Antti Haapala
1
A pergunta pergunta como adicionar horas, mas a subtração de horas pode ser feita de duas maneiras: 1) Use o operador de subtração ( -) em vez do operador de adição ( +); de acordo com a documentação "os timedeltaobjetos suportam certas adições e subtrações com data e datetimeobjetos" 2) Passe um valor negativo para qualquer um dos timedeltaparâmetros; de acordo com a documentação , "Os argumentos podem ser ints, longs ou floats e podem ser positivos ou negativos".
The Red Pea
20

Importar datetime e timedelta :

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

Mas a melhor maneira é:

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

Você pode consultar strptimee strftimecomportamento para entender melhor como o python processa o campo de datas e horas

mu 無
fonte
Os links para os documentos python fornecem informações sobre a análise e formatação de data / hora .
hc_dev 28/03