Come aggiungere ore all'ora corrente in Python


158

Sono in grado di ottenere l'ora corrente come di seguito:

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

Risultato

'19:43:20'

Ora sto provando ad aggiungere 9 hoursl'ora sopra, come posso aggiungere ore all'ora corrente in Python?


12
Per formattare l'ora corrente in questo modo, dai un'occhiata adatetime.now().strftime('%H:%M:%S')
eumiro,

Risposte:


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 quindi usa la formattazione delle stringhe per ottenere i pezzi rilevanti:

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

Se stai solo formattando il datetime, puoi usare:

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

Oppure, come ha sottolineato @eumiro nei commenti - strftime


Perché questa non è la migliore risposta? Ci sono effetti collaterali? bug non segnalato?
Braza,

6
@Braza l'OP non ha scelto di accettarlo. Nessun effetto collaterale o bug.
Jon Clements

@JonClements Grazie per la risposta :). L'ho provato e confermo.
Braza,

3
Questo non è sicuro per l'ora legale.
Antti Haapala,

1
La domanda chiede come aggiungere ore, ma le ore di sottrazione potrebbero essere fatte in due modi: 1) Utilizzare l'operatore di sottrazione ( -) anziché l'operatore di addizione ( +); secondo la documentazione "gli timedeltaoggetti supportano determinate aggiunte e sottrazioni con data e datetimeoggetti" 2) Passare un valore negativo a uno qualsiasi dei timedeltaparametri; secondo la documentazione , "Gli argomenti possono essere ints, long o float e possono essere positivi o negativi".
The Red Pea

20

Importa datetime e timedelta :

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

Ma il modo migliore è:

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

È possibile fare riferimento strptimee strftimecomportamento per comprendere meglio come Python elabora il campo di date e ora


I collegamenti ai documenti di Python forniscono approfondimenti sull'analisi e la formattazione di data / ora .
hc_dev,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.