我有一个包含日期的变量...
end_date = '3/15/2019'
我希望输出为:
start_date = '3/15/2018'
任何人都可以帮助我如何为此编写代码吗?
答案 0 :(得分:2)
如果您要在给定日期之前365天严格约会:
import datetime
(datetime.datetime.strptime(end_date, '%m/%d/%Y') - datetime.timedelta(days=365)).strftime('%m/%d/%Y')
'03/15/2018'
答案 1 :(得分:1)
如果它始终是字符串,则可以切片并减去1(在转换为int之后):
end_date = '3/15/2019'
start_date = end_date[:-4] + str(int(end_date[-4:])-1)
print(start_date)
>>> 3/15/2018
答案 2 :(得分:1)
我建议使用箭头库,该库支持您将时间单位(从秒转换为年)。而且,它可以应对leap年!
import arrow
date_format = 'M/D/YYYY'
end_date = '2/29/2016'
# shift by years:
start_date = arrow.get(end_date, date_format).shift(years=-1)
start_date = start_date.format(date_format)
print(start_date)
>>> '2/28/2015'
# shift by 365 days:
start_date = arrow.get(end_date, date_format).shift(days=-365)
start_date = start_date.format(date_format)
print(start_date)
>>> '3/1/2015'