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

for i in range(1, 35)
    date = datetime.datetime(2003, 8, i)
    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的形式,这样就不会出现从一个月过渡到下一个月的问题。

其他回答

下面是另一个使用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对象完成:

import datetime

datetime.datetime.now() + datetime.timedelta(days=1)

在Python文档中查找timedelta对象:http://docs.python.org/library/datetime.html

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

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的形式,这样就不会出现从一个月过渡到下一个月的问题。

这对我来说是一个简单的解决方案:

from datetime import timedelta, datetime

today = datetime.today().strftime("%Y-%m-%d")
tomorrow = datetime.today() + timedelta(1)

最简单的解决方案

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