我想返回过去 30 天的列表。这是我迄今为止尝试过的,但不确定如何继续返回列表
def date_range():
start_date = datetime.date(2021,3,1)
end_date = datetime.date(2021,3,31)
delta = datetime.timedelta(days=1)
while start_date <= end_date:
start_date+=delta
期望输出
date_range = ['2021-03-01','2021-03-02','2021-03-03','2021-03-04','2021-03-05',...]
您应该创建一个空列表并继续附加日期:
import datetime
def date_range():
result = []
current = datetime.date(2021, 3, 1)
end = datetime.date(2021, 3, 31)
delta = datetime.timedelta(days=1)
while current <= end:
result.append(current)
current += delta
return result
print(date_range())
当然,您可以将 start 和 end 作为参数传递,这更有意义:
import datetime
def date_range(start, end):
result = []
current = start
delta = datetime.timedelta(days=1)
while current <= end:
result.append(current)
current += delta
return result
print(date_range(datetime.date(2021, 3, 1), datetime.date(2021, 3, 31)))
如果你想要它们作为字符串:
import datetime
def date_range(start, end):
result = []
current = start
delta = datetime.timedelta(days=1)
while current <= end:
result.append(current.strftime("%Y-%m-%d"))
current += delta
return result
print(date_range(datetime.date(2021, 3, 1), datetime.date(2021, 3, 31)))
如果您只需要遍历它们,则可以全部产生它们,而无需创建列表:
def date_range(start, end):
current = start
delta = datetime.timedelta(days=1)
while current <= end:
yield current
current += delta
for date in date_range(datetime.date(2021, 3, 1), datetime.date(2021, 3, 31)):
print(date)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句