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

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

其他回答

最简单的解决方案

from datetime import timedelta, datetime
date = datetime(2003,8,1,12,4,5)
for i in range(5):
    date += timedelta(days=1)
    print(date)
date = datetime.datetime(2003,8,1,12,4,5)
for i in range(5): 
    date += datetime.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的形式,这样就不会出现从一个月过渡到下一个月的问题。

递增日期可以使用timedelta对象完成:

import datetime

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

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

您还可以导入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')