Как создать список последних часов дня?
Я пробовал это, но он получает только последние 12 часов, а что, если последний час был вчера?
past_hours = []
for x in range(12):
past_hours.append((date - datetime.timedelta(hours=x)))
Вы ищете список даты и времени начала каждого часа с начала дня?
Это может быть то, что вам нужно:
import datetime
now = datetime.datetime.now()
day = now.day
month = now.month
year = now.year
hours_since_midnight = now.hour
hours = []
# Via a for loop
for i in range(hours_since_midnight):
hours.append(datetime.datetime(year, month, day, hour=i))
# Or you can do it this way (list comprehension)
hours = [datetime.datetime(year, month, day, hour=x)
for x in range(hours_since_midnight)]
Это создаст список даты и времени начала каждого часа с начала дня (не включая текущий час). Если вы хотите текущий час, вам нужно сделать range(hours_since_midnight + 1)
Вы можете сжимать day
, month
и year
прямо в свои определения, если хотите.
Я пробовал что-то подобное, которое выводит список времени за последние 24 часа (исключая вчерашний день) past_hours = [] for x in range(24): date_test = date_today - datetime.timedelta(hours=x) if (date_today.day>date_test.day): pass else: past_hours.append((date_today - datetime.timedelta(hours=x)).strftime("%I:%M %p"))
, но это все еще работает, спасибо!
Не беспокойтесь, проверьте также этот сайт, это очень удобно для строк времени.
Если вы выполните свой код в «01:00», вы получите вчерашние часы. Я голосую за закрытие.