Python: получить дату и время последнего часа

Я хочу получить объект даты и времени за последний час. Допустим, системное время "2011-9-28 06:11:30". Я хочу получить вывод как "2011-9-28 05" #{06 - 1 час}

Я использовал:

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

Однако мой вывод вообще не показывает временную часть. где я ошибаюсь?


person Rishav Sharan    schedule 28.09.2011    source источник


Ответы (3)


Дата не имеет часа - используйте datetime:

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'))
person Adam Morris    schedule 28.09.2011
comment
Я всегда так делаю, но мне хотелось бы, чтобы у меня был 1-функциональный способ написать это вместо вызова 2-х функций и вычитания. Я мог бы сделать простую библиотеку для него. - person Gattster; 24.11.2014
comment
Осторожно: кажется, что это возвращает неожиданные результаты. datetime.now() определенно предпочтительнее. - person James Taylor; 12.03.2017
comment
Предупреждение, вы используете datetime.now(), но дата и время не импортируются, я отредактировал ответ. - person Gugu72; 10.04.2020

Это работает для меня:

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
person eumiro    schedule 28.09.2011

Вы можете достичь той же цели, используя pandas:

import pandas as pd
pd.Timestamp.now() - pd.Timedelta('1 hours')
person nimbous    schedule 10.07.2020