📅  最后修改于: 2023-12-03 15:41:27.291000             🧑  作者: Mango
有时候我们需要在一个日期范围内对数据进行处理,但是如何获取两个日期之间的所有日期呢?下面就为大家介绍如何使用Python获取两个日期之间的所有日期。
Python的datetime模块提供了date和datetime两个类来操作日期和时间。我们可以使用它们中的date类来完成该任务。具体步骤如下:
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)
我们使用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)]
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)
还可以使用Python的pandas模块来获取两个日期之间的所有日期。下面介绍具体步骤:
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()
我们使用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']
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)
以上就是获取两个范围之间的日期的两种方法,大家可以根据自己的需要选择相应的方法来完成任务。