2009-04-01 7 views
27

En Python, j'essaie de récupérer la date/heure qui est exactement 30 jours (30 * 24hrs) dans le passé. À l'heure actuelle, je fais simplement:Comment calculer exactement 30 jours dans le passé avec Python (jusqu'à la minute)?

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

qui retourne un objet datetime, mais sans données en 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' 
+0

Pas vraiment sûr pourquoi quelqu'un -1'd cela. –

Répondre

59

Vous voulez utiliser un objet datetime au lieu d'un objet date:

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

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

+0

Ah, cloué. Merci. –

+0

sympa et explicite! :) –

-6

Date <> datetime

+0

C'est en fait. Ce ne sont pas la même chose. –

+2

Ceci est Python, pas Pascal. <> est obsolète. :( –

+2

Utilisez '! =' Au lieu de '<>' en Python – jfs

Questions connexes