我想用Python编写一个程序来查找Python上个月连续7天的列表,例如,如果今天是2019-5-9,那么我的输出应该是2019-4-8到2019- 4-2,为此,我使用了Python的datetime模块。我已经编写了如下程序,但我不想以datetime.date()格式输出,而是2019-4-8。你能告诉我怎么做吗。另外,还建议其他时间较少的复杂性和简单的代码。
from datetime import date, timedelta
current_date=date.today()
current_year=date.today().year
current_day=date.today().day-1
month_before=date.today().month-1
date_before=current_date.replace(current_year,month_before,current_day)
month_list=[date_before]
print(month_list)
for i in range(1,7):
month_list.append(date_before-timedelta(days=i))
print (month_list)
输出是
[datetime.date(2019, 4, 8)]
[datetime.date(2019, 4, 8), datetime.date(2019, 4, 7), datetime.date(2019, 4, 6), datetime.date(2019, 4, 5), datetime.date(2019, 4, 4), datetime.date(2019, 4, 3), datetime.date(2019, 4, 2)]
答案 0 :(得分:0)
您可以使用strftime格式化日期
from datetime import date, timedelta
current_date=date.today()
current_year=date.today().year
current_day=date.today().day-1
month_before=date.today().month-1
date_before=current_date.replace(current_year,month_before,current_day)
month_list=[date_before]
print(month_list)
month_list=[(date_before-timedelta(days=i)).strftime("%Y-%m-%d") for i in range(7)]
print(month_list)
或者您可以使用pandas date_range和dateoffset。
import pandas as pd
date_list = sorted(pd.date_range(pd.datetime.today()
- pd.DateOffset(months=1)
- pd.DateOffset(days=7) ,
periods=7).tolist(), reverse=True)
print([dt.strftime("%Y-%m-%d") for dt in date_list])
结果:
['2019-04-08', '2019-04-07', '2019-04-06', '2019-04-05', '2019-04-04', '2019-04-03', '2019-04-02']