2009-04-01 13 views
27

In Python, sto tentando di recuperare la data/ora che è esattamente 30 giorni (30 * 24 ore) nel passato. Allo stato attuale, sto semplicemente facendo:Come potrei calcolare esattamente 30 giorni nel passato con Python (fino al minuto)?

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

che restituisce un oggetto datetime, ma senza dati in tempo:

>>> 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

Non proprio sicuro del perché qualcuno ha fatto questo. –

risposta

59

si desidera utilizzare un oggetto datetime invece di un oggetto date:

date memorizza solo una data e time solo una volta. datetime è una data con un orario.

+0

Ah, inchiodato. Grazie. –

+0

bello ed esplicito! :) –

-6

data <> datetime

+0

In realtà. Non sono la stessa cosa –

+2

Questo è Python, non Pascal. <> è deprecato. :( –

+2

Usa '! =' Invece di '<>' in Python. – jfs

Problemi correlati