2009-04-01 21 views
27

Trong Python, tôi đang cố truy xuất ngày/giờ chính xác là 30 ngày (30 * 24 giờ mỗi ngày) trong quá khứ. Hiện nay, tôi chỉ đơn giản là thực hiện:Làm cách nào để tôi tính chính xác 30 ngày trong quá khứ với Python (xuống đến phút)?

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

nào trả về một đối tượng datetime, nhưng không có dữ liệu thời gian:

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

Không thực sự chắc chắn lý do vì sao một người nào đó đã làm điều này. –

Trả lời

59

Bạn muốn sử dụng một đối tượng datetime thay vì chỉ một đối tượng date:

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

date chỉ lưu trữ ngày và time chỉ một lần. datetime là ngày có thời gian.

+0

Ah, được đóng đinh. Cảm ơn. –

+0

đẹp và rõ ràng! :) –

-6

ngày <> datetime

+0

Nó thực sự là. Chúng không giống nhau. –

+2

Đây là Python, không phải Pascal. <> không được chấp nhận. :( –

+2

Sử dụng '! =' Thay vì '<>' trong Python. – jfs

Các vấn đề liên quan