Создать список datеtime имея начальную дату и конечную
Нужно создать функцию на пайтоне, которая бы генерировала список с датами от определённой даты до определённой даты (можно вводить любые). При этом datetime должен быть формата '%d.%m.%Y %H:%M'. На каждую дату должно быть 48 элементов, чтобы воемя в них менялось с 00:00 до 23:30 с интервалом в 30 минут.
Например у нас есть 21.10.2012 и 23.10.2012. Значит в списке должны быть
['21.10.2012 00:00',
'21.10.2012 00:30',
'21.10.2012 01:00',
...,
'23.10.2012 23:00',
'23.10.2012 23:30']
Ответы (1 шт):
Вам нужна функция datetime_range, как и в обычном range, задаются нижняяя граница включительно, верхняя граница исключительно и шаг. Вариант реализации с использованием функции-генератора:
import datetime
def datetime_range(start, end, step):
current = start
while current < end:
yield current
current += step
Пример использования:
values = list(datetime_range(
datetime.datetime.strptime('2020-09-20 12:00', '%Y-%m-%d %H:%M'),
datetime.datetime.strptime('2020-09-21 14:00', '%Y-%m-%d %H:%M'),
datetime.timedelta(hours=4))
)
print([dt.strftime('%Y-%m-%d %H:%M') for dt in values])
Вывод:
['2020-09-20 12:00', '2020-09-20 16:00', '2020-09-20 20:00', '2020-09-21 00:00', '2020-09-21 04:00', '2020-09-21 08:00', '2020-09-21 12:00']