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?
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?
Risposte:
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
-) 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".
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
datetime.now().strftime('%H:%M:%S')