2011-09-28 88 views
22

我想獲取最近一小時的日期時間對象。 讓說的SYS時間爲「2011-9-28 6時十一分30秒」 我想要得到的輸出爲「2011-9-28 05」#{06 - 5小時}Python:獲取最近一小時的日期時間

我用:

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

但是,我的輸出沒有顯示時間部分。我哪裏錯了?

回答

52

日期沒有小時 - 使用日期時間:

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

感謝。這是正確的答案。 –

+0

這是我總是這樣做的方式,但我希望我有一個函數的方法來寫這個,而不是調用2個函數和減法。我可能會爲它創建一個簡單的庫。 – Gattster

+1

小心:這看起來會返回意想不到的結果。 'datetime.now()'[絕對是首選](http://stackoverflow.com/questions/32298332/python3-4-datetime-today-and-datetime-now)。 –

15

這個工作對我來說:

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