Comment ajouter des heures à l'heure actuelle en python


158

Je suis en mesure d'obtenir l'heure actuelle comme ci-dessous:

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

Résultat

'19:43:20'

Maintenant, j'essaie d'ajouter 9 hoursà l'heure ci-dessus, comment puis-je ajouter des heures à l'heure actuelle en Python?


12
Pour obtenir l'heure actuelle formatée de cette façon, jetez un œil àdatetime.now().strftime('%H:%M:%S')
eumiro

Réponses:


368
from datetime import datetime, timedelta

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

Et puis utilisez le formatage de chaîne pour obtenir les éléments pertinents:

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

Si vous formatez uniquement le datetime, vous pouvez utiliser:

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

Ou, comme @eumiro l'a souligné dans les commentaires - strftime


Pourquoi n'est-ce pas la meilleure réponse? Y a-t-il des effets secondaires? bug non signalé?
Braza

6
@Braza l'OP n'a tout simplement pas choisi de l'accepter. Aucun effet secondaire ni bogue.
Jon Clements

@JonClements Merci pour votre réponse :). Je l'ai testé et je confirme.
Braza

3
Ce n'est cependant pas sûr pour l'heure d'été.
Antti Haapala

1
La question demande comment ajouter des heures, mais la soustraction des heures peut être effectuée de deux manières: 1) Utilisez l'opérateur de soustraction ( -) au lieu de l'opérateur d'addition ( +); selon la documentation "les timedeltaobjets prennent en charge certains ajouts et soustractions avec la date et les datetimeobjets" 2) Passer une valeur négative à l'un des timedeltaparamètres; selon la documentation , "les arguments peuvent être des entiers, des longs ou des flottants, et peuvent être positifs ou négatifs."
The Red Pea

20

Importez datetime et timedelta :

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

Mais le meilleur moyen est:

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

Vous pouvez vous référer strptimeetstrftime vous comporter pour mieux comprendre comment python traite le champ de dates et d'heure


Les liens vers les documents Python donnent des informations sur l' analyse et le formatage de la date et de l'heure .
hc_dev
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.