2011-09-28 35 views
22

Tôi muốn nhận được đối tượng ngày giờ cho giờ trước. phép nói rằng thời gian sys là "2011/09/28 06:11:30" Tôi muốn nhận được đầu ra như "2011/09/28 05" # {06-1 giờ}Python: nhận ngày giờ trong 01 giờ

tôi đã sử dụng:

lastHourDateTime = date.today() - timedelta(hours = 1) 
    print lastHourDateTime.strftime('%Y-%m-%d %H:%M:%S') 

Tuy nhiên, đầu ra của tôi không hiển thị phần thời gian. Tôi làm sai ở đâu?

Trả lời

52

ngày không có giờ - datetime sử dụng:

from datetime import datetime, timedelta 
last_hour_date_time = datetime.now() - timedelta(hours = 1) 
print last_hour_date_time.strftime('%Y-%m-%d %H:%M:%S') 
+0

Cảm ơn. Đây là câu trả lời chính xác. –

+0

Đây là cách tôi luôn làm, nhưng tôi ước mình có 1 cách để viết nó thay vì gọi 2 hàm và trừ. Tôi có thể làm một thư viện đơn giản cho nó. – Gattster

+1

Cẩn thận: Điều này dường như trả lại các kết quả không mong muốn. 'datetime.now()' là [chắc chắn ưa thích] (http://stackoverflow.com/questions/32298332/python3-4-datetime-today-and-datetime-now). –

15

này làm việc cho tôi:

import datetime 

lastHourDateTime = datetime.datetime.now() - datetime.timedelta(hours = 1) 
print lastHourDateTime.strftime('%Y-%m-%d %H') 

# prints "2011-09-28 12" which is the time one hour ago in Central Europe 
Các vấn đề liên quan