如何生成指定格式的近12个月末日期列表?datetime参数咨询
问题解答
一、生成指定格式的月末日期列表
要生成以上月末为起点、向前回溯12个月的月末日期列表,格式为YYYY-MM-DD,可以按以下逻辑修改代码:
- 先把基准日期调整为上月末,而非当前日期;
- 对每个回溯的日期,确保取当月最后一天;
- 将datetime对象转换为指定格式的字符串。
修改后的代码如下:
from datetime import datetime from dateutil.relativedelta import relativedelta # 获取上月末:先取当前日期的月初,再减1天 base = datetime.today().replace(day=1) - relativedelta(days=1) # 回溯12个月,每个日期取当月最后一天并格式化 date_list = [(base - relativedelta(months=x)).strftime("%Y-%m-%d") for x in range(12)] print(date_list)
执行后会输出类似结果:
['2022-09-30', '2022-08-31', '2022-07-31', '2022-06-30', '2022-05-31', '2022-04-30', '2022-03-31', '2022-02-28', '2022-01-31', '2021-12-31', '2021-11-30', '2021-10-31']
二、datetime对象数值含义解释
你看到的datetime.datetime(2022, 10, 12, 13, 18, 17, 747024)中,各数值的含义依次是:
- 第1位:年(2022)
- 第2位:月(10)
- 第3位:日(12)
- 第4位:时(13,采用24小时制)
- 第5位:分(18)
- 第6位:秒(17)
- 第7位:微秒(747024,1秒=1000000微秒)
内容的提问来源于stack exchange,提问作者user13948
相关产品推荐
相关产品推荐

