Получение списка дат с учетом строки в Python - PullRequest
0 голосов
/ 22 марта 2019

У меня есть строка в Python, которая

date="200601"

, которая представляет в 2006 January

Как мне получить список дат в этом конкретном месяце в 'yyyy-mm-dd'format

, а также как выполнить итерацию от 200601 до 201903, т.е.получить все значения между двумя месяцами.

example 200601,200602,200603...

Спасибо и высоко ценим.

1 Ответ

1 голос
/ 22 марта 2019

Чтобы получить все dates в month этого year в формате yyyy-mm-dd:

date = "200601"

import datetime, calendar
num_days = calendar.monthrange(int(date[:-2]), int(date[4:]))[1]
print([datetime.date(int(date[:-2]), int(date[4:]), day).strftime("%Y-%m-%d") for day in range(1, num_days+1)])

OUTPUT

['2006-01-01', '2006-01-02', '2006-01-03', '2006-01-04', '2006-01-05', '2006-01-06', '2006-01-07', '2006-01-08', '2006-01-09', '2006-01-10', '2006-01-11', '2006-01-12', '2006-01-13', '2006-01-14', '2006-01-15', '2006-01-16', '2006-01-17', '2006-01-18', '2006-01-19', '2006-01-20', '2006-01-21', '2006-01-22', '2006-01-23', '2006-01-24', '2006-01-25', '2006-01-26', '2006-01-27', '2006-01-28', '2006-01-29', '2006-01-30', '2006-01-31']

А по второму вопросу:

Печать всех дней между двумя датами

EDIT

Продолжая комментарии к этому ответу:

print([datetime.date(int(date[:-2]), int(date[4:]), day).strftime("%Y%d") for day in range(1, num_days+1)])

OUTPUT

['200601', '200602', '200603', '200604', '200605', '200606', '200607', '200608', '200609', '200610', '200611', '200612', '200613', '200614', '200615', '200616', '200617', '200618', '200619', '200620', '200621', '200622', '200623', '200624', '200625', '200626', '200627', '200628', '200629', '200630', '200631']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...