web-dev-qa-db-fra.com

Comment calculer exactement 30 jours dans le passé avec Python (jusqu'à la minute)?

En Python, j'essaie de récupérer la date/heure qui est exactement 30 jours (30 * 24 heures) dans le passé. À l'heure actuelle, je fais simplement:

>>> import datetime
>>> start_date = datetime.date.today() + datetime.timedelta(-30)

Qui renvoie un objet datetime, mais sans données de temps:

>>> start_date.year
2009
>>> start_date.hour
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'datetime.date' object has no attribute 'hour'
44
Nick Sergeant

Vous souhaitez utiliser un objet datetime au lieu d'un simple objet date:

start_date = datetime.datetime.now() - datetime.timedelta(30)

date stocke juste une date et time juste une heure. datetime est une date avec une heure.

89
sth