从python中的datetime.date对象获取上一年

从python中的datetime.date对象获取上一年,python,Python,我知道这应该很简单,我知道我可以做到以下几点: ini_time_for_now = datetime.now() past_date_before_2yrs = ini_time_for_now - timedelta(days = 730) 过去日期:2017-02-27 12:41:46.104662 但我更愿意从datetime.date或类似的内容中获取上一年的数据。只要我能保持YYYY-mm-dd格式。这就是问题所在。是否可以通过以下方式获取上一年的数据: start_date_

我知道这应该很简单,我知道我可以做到以下几点:

ini_time_for_now = datetime.now()
past_date_before_2yrs = ini_time_for_now - timedelta(days = 730) 
过去日期:2017-02-27 12:41:46.104662

但我更愿意从
datetime.date
或类似的内容中获取上一年的数据。只要我能保持YYYY-mm-dd格式。这就是问题所在。是否可以通过以下方式获取上一年的数据:

start_date_object = datetime.strptime(start_date, "%Y-%m-%d").date()
上面的开始日期对象将是
2020-10-01


我想问
2019-10-01

这能回答你的问题吗

import datetime
now = datetime.datetime.now()
last_year = now.year - 1
start_date=f'{last_year} {now.month} {now.day}'
start_date_object = datetime.datetime.strptime(start_date, "%Y %m %d").date()
start_date_object
输出

datetime.date(2019, 12, 1)
答案是:

start_date_object.replace(year=start_date_object.year - 1)

你的问题不清楚。第二个示例中的开始日期是什么?给定开始日期,当您说“从datetime.date对象获取上一年”时,您的预期输出是什么?@ScootCork Good call。我在上面添加了更多细节。这有帮助吗?每四年会有一天不及格。@AnonCoward把所有其他日子的分数算进去,这是一个相当好的及格率!这并不能回答我的问题。我想从
start\u date\u对象中获取上一年的数据
格式为
strtime(start\u date,“%Y%m%d”)。date()