我试图通过用户输入的月份数来设置月份增加。例如,用户输入的日期为date = '2017-10-06'
,频率月份为FreqMonth=3
。如何在python中增加日期格式的月份
因此,我的工作是从日期date=2017-10-06
生成3个月的日期。它会导致像这样:2017-10-06
2017-11-06
和2018-10-06
。
我想我是这样的:
from datetime import datetime
date = '2017-09-06'
datelist = date.split('-')
FreqMonth = 3
for row in range(1,FreqMonth+1):
if row > 1:
datelist = newDate.split('-')
newMonth = int(datelist[1])+1
newDate = datetime.strptime(datelist[0] + '-' + str(newMonth) + '-' + datelist[2], '%Y-%m-%d')
newDate = newDate.strftime('%Y-%m-%d')
print newDate
输出是:
2017-10-06
2017-11-06
2017-12-06
它,工作得很好,但是如果我改变FreqMonth=5
什么超过3个,我得到了错误
ValueError: time data '2017-13-06' does not match format '%Y-%m-%d'
Traceback (most recent call last):
File "DatePeriod.py", line 12, in <module>
newDate = datetime.strptime(datelist[0] + '-' + str(newMonth) + '-' + datelist[2], '%Y-%m-%d')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
我希望它的结果是:
2017-10-06
2017-11-06
2017-12-06
2018-01-06
2018-02-06
我该如何做到这一点?谢谢。
有没有安装新的扩展名旁边任何其他方式,我试图避免使用第三方延期。谢谢。 –
不是我知道对不起。举例来说,我认为手工做这件事会比闰年困难一些。 – yorah
@yorah,谢谢。我尝试了你的答案。但它带有前导'00:00:00',我该如何删除它。我只想要年,月和日。谢谢。 –