2011-09-28 10 views
22

Desidero ottenere l'oggetto orario della data dell'ultima ora. consente di dire il tempo sys è "2011/09/28 06:11:30" Voglio ottenere l'output come "2011/09/28 05" # {06 - 1 h}Python: ottenere il datetime dell'ultima ora

ho usato:

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

Tuttavia, il mio output non mostra affatto il tempo. dove sto andando male?

risposta

52

Data non ha l'ora - datetime uso:

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

Grazie. Questa è la risposta corretta. –

+0

Questo è il modo in cui lo faccio sempre, ma vorrei avere un modo 1 di scrivere questo invece di chiamare 2 funzioni e sottrarre. Potrei creare una semplice libreria per questo. – Gattster

+1

Attento: sembra restituire risultati imprevisti. 'datetime.now()' è [decisamente preferito] (http://stackoverflow.com/questions/32298332/python3-4-datetime-today-and-datetime-now). –

15

questo funziona per me:

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