在Python中遍历日期
这是我的代码:
MYDATE = []
start_date = "2011-01-01"
stop_date = "2013-05-01"
start = start_date.strftime("%Y-%m-%d")
stop = stop_date.strftime("%Y-%m-%d")
for r in .......:
MYDATE.append((r,r))
我该如何遍历start_date
和stop_date
之间的日期呢?
2 个回答
0
那关于 timedelta 呢?
start = datetime.now()
end = start + timedelta(days=10)
tmp = start
while tmp < end:
print tmp
tmp = tmp + timedelta(days=1) # replace the interval at will
打印输出
2014-04-07 10:42:14.943790
2014-04-08 10:42:14.943790
2014-04-09 10:42:14.943790
2014-04-10 10:42:14.943790
2014-04-11 10:42:14.943790
2014-04-12 10:42:14.943790
2014-04-13 10:42:14.943790
2014-04-14 10:42:14.943790
2014-04-15 10:42:14.943790
2014-04-16 10:42:14.943790
15
这要看你想怎么遍历数据了。是按天遍历?还是按月遍历?如果你用 timedelta
,就能解决你的问题。
from datetime import datetime
start_date = "2011-01-01"
stop_date = "2013-05-01"
start = datetime.strptime(start_date, "%Y-%m-%d")
stop = datetime.strptime(stop_date, "%Y-%m-%d")
from datetime import timedelta
while start < stop:
start = start + timedelta(days=1) # increase day one by one
另一种按月遍历的方法是使用 relativedelta
。
from dateutil.relativedelta import relativedelta
start = start + relativedelta(months = +1)