Possible Duplicate:
Iterating through a range of dates in Python




我有一种方法可以传递开始日期和结束日期。最终结果是我希望将开始日期和结束日期之间的所有日期都作为列表。例如,如果开始日期为'2013-01-01',结束日期为'2013-01-04',则['2013-01-01','2013-01-02','2013-01-03 ','2013-01-04']应该返回。我可以做类似下面的事情。但想知道是否有我没有考虑过的简单方法

year = int(startdate.split('-')[0])
month = int(startdate.split('-')[1])
day = int(startdate.split('-')[2])

最佳答案

>>> from datetime import datetime, timedelta
>>> starttime = datetime.strptime('2013-01-01', '%Y-%m-%d')
>>> endtime = datetime.strptime('2013-01-04', '%Y-%m-%d')
>>> [starttime + timedelta(days=i) for i in range((endtime - starttime).days + 1)]
[datetime.datetime(2013, 1, 1, 0, 0), datetime.datetime(2013, 1, 2, 0, 0), datetime.datetime(2013, 1, 3, 0, 0), datetime.datetime(2013, 1, 4, 0, 0)]
>>> list(map(lambda x: x.strftime('%Y-%m-%d'), _))
['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04']

关于python - 以数组形式获取日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14328474/

10-13 22:22