如何使用python查找两个日期之间的日期(不包括开始日期和结束日期)

如何使用python查找两个日期之间的日期(不包括开始日期和结束日期),python,Python,我有两个日期10-02-2016和16-02-2016采用dd-mm-yyyy格式,我想要这些日期之间的日期列表,不包括开始日期和结束日期 预期输出: 11-02-2016 12-02-2016 13-02-2016 14-02-2016 15-02-2016 我有以下代码片段: import datetime date1 = datetime.datetime.strptime('10-02-2016', '%d-%m-%Y').date() date2 = datetime.dateti

我有两个日期
10-02-2016
16-02-2016
采用
dd-mm-yyyy
格式,我想要这些日期之间的日期列表,不包括开始日期和结束日期

预期输出:

11-02-2016
12-02-2016
13-02-2016
14-02-2016
15-02-2016
我有以下代码片段:

import datetime

date1 = datetime.datetime.strptime('10-02-2016', '%d-%m-%Y').date()
date2 = datetime.datetime.strptime('16-02-2016', '%d-%m-%Y').date()

delta = date2 - date1
for i in range(delta.days):
    print(date1 + datetime.timedelta(i))
其输出为:

10-02-2016
11-02-2016
12-02-2016
13-02-2016
14-02-2016
15-02-2016
有人有什么建议吗


谢谢。

带有列表理解功能的选项,在需要的地方切片:

import datetime

date1 = datetime.datetime.strptime('10-02-2016', '%d-%m-%Y').date()
date2 = datetime.datetime.strptime('16-02-2016', '%d-%m-%Y').date()

delta = date2 - date1
for i in range(1,delta.days):
    print(date1 + datetime.timedelta(i))
list_of_dates = [ date1 + datetime.timedelta(i) for i in range((date2 - date1).days + 1) ]

for date in list_of_dates[1:-1]:
  print(date)

# 2016-02-11
# 2016-02-12
# 2016-02-13
# 2016-02-14
# 2016-02-15

您可以使用列表理解对第一个元素进行切片。您可以更改
范围(1,delta.days+1)
。这将以
i=1
而不是
i=0
开始循环。谢谢@TylerChen,它工作得很好。@TylerChen,
range(1,delta.days)
更接近,因为OP不需要最后一个。
range(1,delta.days)
它按预期工作。这是最好的一个