📌  相关文章
📜  获取两个范围之间的日期 - Python (1)

📅  最后修改于: 2023-12-03 15:41:27.291000             🧑  作者: Mango

获取两个范围之间的日期 - Python

有时候我们需要在一个日期范围内对数据进行处理,但是如何获取两个日期之间的所有日期呢?下面就为大家介绍如何使用Python获取两个日期之间的所有日期。

方法一:使用datetime模块

Python的datetime模块提供了date和datetime两个类来操作日期和时间。我们可以使用它们中的date类来完成该任务。具体步骤如下:

1.导入datetime模块

import datetime

2.定义起始日期和终止日期

start_date = datetime.date(2021, 1, 1)
end_date = datetime.date(2021, 1, 31)

3.获取起始日期和终止日期之间的所有日期

date_list = []

while start_date <= end_date:
    date_list.append(start_date)
    start_date = start_date + datetime.timedelta(1)
    
print(date_list)

我们使用while循环和timedelta方法获取了所有日期,并存储在一个列表中。使用print语句打印结果如下:

[datetime.date(2021, 1, 1), datetime.date(2021, 1, 2), datetime.date(2021, 1, 3), datetime.date(2021, 1, 4), datetime.date(2021, 1, 5), datetime.date(2021, 1, 6), datetime.date(2021, 1, 7), datetime.date(2021, 1, 8), datetime.date(2021, 1, 9), datetime.date(2021, 1, 10), datetime.date(2021, 1, 11), datetime.date(2021, 1, 12), datetime.date(2021, 1, 13), datetime.date(2021, 1, 14), datetime.date(2021, 1, 15), datetime.date(2021, 1, 16), datetime.date(2021, 1, 17), datetime.date(2021, 1, 18), datetime.date(2021, 1, 19), datetime.date(2021, 1, 20), datetime.date(2021, 1, 21), datetime.date(2021, 1, 22), datetime.date(2021, 1, 23), datetime.date(2021, 1, 24), datetime.date(2021, 1, 25), datetime.date(2021, 1, 26), datetime.date(2021, 1, 27), datetime.date(2021, 1, 28), datetime.date(2021, 1, 29), datetime.date(2021, 1, 30), datetime.date(2021, 1, 31)]

4.完整代码

import datetime

start_date = datetime.date(2021, 1, 1)
end_date = datetime.date(2021, 1, 31)

date_list = []

while start_date <= end_date:
    date_list.append(start_date)
    start_date = start_date + datetime.timedelta(1)

print(date_list)
方法二:使用pandas模块

还可以使用Python的pandas模块来获取两个日期之间的所有日期。下面介绍具体步骤:

1.导入pandas模块

import pandas as pd

2.定义起始日期和终止日期

start_date = '2021-01-01'
end_date = '2021-01-31'

3.生成日期范围

date_range = pd.date_range(start=start_date, end=end_date)

4.将日期转换为列表

date_list = date_range.strftime("%Y-%m-%d").tolist()

我们使用strftime方法将日期转换为字符串类型,并存储在一个列表中。使用print语句打印结果如下:

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

5.完整代码

import pandas as pd

start_date = '2021-01-01'
end_date = '2021-01-31'

date_range = pd.date_range(start=start_date, end=end_date)

date_list = date_range.strftime("%Y-%m-%d").tolist()

print(date_list)

以上就是获取两个范围之间的日期的两种方法,大家可以根据自己的需要选择相应的方法来完成任务。