我想找出去年四月的日期。我想将代码从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'))
答案 0 :(得分:1)
这样,您将不会在去年4月之前获得去年4月的收入,而在4月之后则不会获得今年4月的收入。
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'))
答案 1 :(得分:0)
使用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'