如何增加日期时间的日期?

for i in range(1, 35)
    date = datetime.datetime(2003, 8, i)
    print(date)

但我需要正确地度过几个月和几年?什么好主意吗?


当前回答

最简单的解决方案

from datetime import timedelta, datetime
date = datetime(2003,8,1,12,4,5)
for i in range(5):
    date += timedelta(days=1)
    print(date)

其他回答

一个完全没有库的简单解决方案。:)

d = "8/16/18"
day_value = d[(d.find('/')+1):d.find('/18')]
tomorrow = f"{d[0:d.find('/')]}/{int(day_value)+1}{d[d.find('/18'):len(d)]}".format()
print(tomorrow)
# 8/17/18

确保“字符串d”实际上是%m/%d/%Y的形式,这样就不会出现从一个月过渡到下一个月的问题。

date = datetime.datetime(2003,8,1,12,4,5)
for i in range(5): 
    date += datetime.timedelta(days=1)
    print(date) 

最简单的解决方案

from datetime import timedelta, datetime
date = datetime(2003,8,1,12,4,5)
for i in range(5):
    date += timedelta(days=1)
    print(date)

下面是另一个使用dateutil的relativedelta在日期上添加天数的方法。

from datetime import datetime
from dateutil.relativedelta import relativedelta

print 'Today: ',datetime.now().strftime('%d/%m/%Y %H:%M:%S') 
date_after_month = datetime.now()+ relativedelta(day=1)
print 'After a Days:', date_after_month.strftime('%d/%m/%Y %H:%M:%S')

输出:

今天:25/06/2015 20:41:44 日期:01/06/2015 20:41:44

您还可以导入timedelta,这样代码就更简洁了。

from datetime import datetime, timedelta
date = datetime.now() + timedelta(seconds=[delta_value])

然后将日期转换为字符串

date = date.strftime('%Y-%m-%d %H:%M:%S')

Python一行是

date = (datetime.now() + timedelta(seconds=[delta_value])).strftime('%Y-%m-%d %H:%M:%S')