为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取比当前日期更早的特定日期的年份?

如何获取比当前日期更早的特定日期的年份?

婷婷同学_ 2022-07-19 20:19:57
我想知道去年四月的日期。我想从 4 月 1 日到当前日期运行我的代码。因此,如果我在 2020 年 2 月运行报告,那么开始日期应该是 2019 年 4 月 1 日。我怎样才能在 Python 中做到这一点?现在,我只是得到当前年份,这不是正确的方法,因为它会导致错误,因为它要求报告从 2020 年 4 月 1 日到 2020 年 2 月 5 日运行,这没有意义。"REPORT_for_{}-04-01_{}.xlsx".format(datetime.today().strftime('%Y'),                                      datetime.today().strftime('%Y-%m-%d'))
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超5个赞

这样你就不会从去年四月之前和今年四月之后得到四月。



today = datetime.today()


april_date = datetime(today.year, 4, 1)


if april_date > today:

   april_date = datetime(today.year -1, 4, 1)



这是你的报告的一个衬里。它丑得要命,我不会推荐它。一个班轮并不总是那么好。


"REPORT_for_{}-04-01_{}.xlsx".format(datetime.today().year-1 if datetime.today().month < 4 else datetime.today().year, datetime.today().strftime('%Y-%m-%d'))

另一种选择是:


year = datetime.today().year-1 if datetime.today().month < 4 else datetime.today().year

"REPORT_for_{}-04-01_{}.xlsx".format(year, datetime.today().strftime('%Y-%m-%d'))


甚至更好:


today =  datetime.today()

year = today.year-1 if today.month < 4 else today.year

"REPORT_for_{}-04-01_{}.xlsx".format(year, today.strftime('%Y-%m-%d'))


查看完整回答
反对 回复 2022-07-19
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

使用datetime.year:


"REPORT_for_{}-04-01_{}.xlsx".format(datetime.today().year-1, datetime.today().strftime('%Y-%m-%d'))

# Output: 'REPORT_for_2019-04-01_2020-02-05.xlsx'


查看完整回答
反对 回复 2022-07-19
  • 2 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号