You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

输入yyyymmdd格式日期,生成含当月及前两月日期列表的技术问询

解决方案(Python实现)

针对你需要生成指定日期及前两个月对应日期列表,并存储到变量循环执行操作的需求,我整理了一个实用的实现方式:

步骤说明

  1. 借助datetime和python-dateutil库处理日期运算(python-dateutil能自动处理跨年月的边界情况,比如1月减1月会自动转到去年12月)
  2. 将输入的yyyymmdd格式字符串解析为日期对象
  3. 生成当前日期、前1个月、前2个月的日期,再转换回yyyymmdd格式存入列表
  4. 直接遍历这个列表,即可循环执行你的xyz操作

完整代码示例

from datetime import datetime
from dateutil.relativedelta import relativedelta

def get_three_months_dates(input_date_str):
    # 解析输入的日期字符串为datetime对象
    current_date = datetime.strptime(input_date_str, "%Y%m%d").date()
    # 生成前一个月和前两个月的日期
    prev_month_date = current_date - relativedelta(months=1)
    prev_two_month_date = current_date - relativedelta(months=2)
    # 转换回yyyymmdd格式并存入列表
    date_list = [
        current_date.strftime("%Y%m%d"),
        prev_month_date.strftime("%Y%m%d"),
        prev_two_month_date.strftime("%Y%m%d")
    ]
    return date_list

# 示例使用
input_date = "20170828"
target_dates = get_three_months_dates(input_date)
print(target_dates)  # 输出: ['20170828', '20170728', '20170628']

# 循环执行xyz操作
for date_str in target_dates:
    print(f"执行xyz操作,输入日期: {date_str}")
    # 这里替换成你的xyz操作代码,比如xyz(date_str)

注意事项

  • 如果你还没安装python-dateutil,可以通过pip install python-dateutil命令安装
  • 这个方法能完美处理各种边界情况:比如输入20180105会返回['20180105', '20171205', '20171105'];输入20200331(3月有31天)会自动调整到2月的最后一天20200229(闰年),完全符合实际日期逻辑

内容的提问来源于stack exchange,提问作者Chiranjeev Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:40:25