Python生成两个日期之间的日期列表

2024-04-18 01:26:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想生成两个日期之间的日期列表,并以字符串格式将它们存储在列表中。这张单子与我的其他日期相比很有用

我的代码如下:

from datetime import date, timedelta

sdate = date(2019,3,22)   # start date
edate = date(2019,4,9)   # end date

def dates_bwn_twodates(start_date, end_date):
    for n in range(int ((end_date - start_date).days)):
        yield start_date + timedelta(n)
print(dates_bwn_twodates(sdate,edate))

我目前的产出:

<generator object dates_bwn_twodates at 0x000002A8E7929410>

我的预期产出:

['2019-03-22',.....,'2019-04-08']

我的代码有问题


Tags: 字符串代码from列表date格式starttimedelta
3条回答

您可以使用^{}进行以下操作:

import pandas
pandas.date_range(sdate,edate-timedelta(days=1),freq='d')

DatetimeIndex(['2019-03-22', '2019-03-23', '2019-03-24', '2019-03-25',
           '2019-03-26', '2019-03-27', '2019-03-28', '2019-03-29',
           '2019-03-30', '2019-03-31', '2019-04-01', '2019-04-02',
           '2019-04-03', '2019-04-04', '2019-04-05', '2019-04-06',
           '2019-04-07', '2019-04-08'],
          dtype='datetime64[ns]', freq='D')

您的代码重写为列表:

[sdate+timedelta(days=x) for x in range((edate-sdate).days)]

结果:

[datetime.date(2019, 3, 22),
 datetime.date(2019, 3, 23),
 datetime.date(2019, 3, 24),
          :
 datetime.date(2019, 4, 7),
 datetime.date(2019, 4, 8)]

您需要显式地将其转换为带有字符串的列表:

print([str(d) for d in dates_bwn_twodates(sdate,edate)])

相关问题 更多 >

    热门问题