在Python中遍历日期

-1 投票
2 回答
21670 浏览
提问于 2025-04-18 01:41

这是我的代码:

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_datestop_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)

撰写回答