枚举DateRange

时间:2010-01-25 22:27:25

标签: python datetime

我有两个约会,我正在尝试建立一个情节的x轴标签。

因此,我需要一种方法来获取2个日期时间对象,即 2009-10-12 00:00:00 2009-10-20 00:00:00 并生成如下列表:

["2009-10-12", "2009-10-13", "2009-10-14", ..., "2009-10-19", "2009-10-20"]

我应该使用哪些图书馆来协助?我有一种感觉 datetime 模块和 timedelta 功能将会有所帮助。

我可以包含代码,如果它有意义,但我觉得python库中内置了一些内容,可以让它变得非常容易。我似乎只是想念它。

2 个答案:

答案 0 :(得分:2)

import datetime

first=datetime.date(2009,10,12)
last=datetime.date(2009,10,20)
adate=first
dates=[]
while adate<=last:
    dates.append(adate)
    adate+=datetime.timedelta(1)
print(dates)

或者,对于列表理解爱好者:

len=(last-first).days
dates=[first+datetime.timedelta(n) for n in range(len+1)]

答案 1 :(得分:0)

from datetime import date, timedelta

a, b = date(1010, 10, 12), date(1010, 10, 20)
times = [a + timedelta(x) for x in xrange((b-a).days)]

# If you want to format them:
times = [x.strftime('%Y-%m-%d') for x in times]