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

如何在Python中根据日期范围字符串获取周数?

日期范围字符串转ISO周数的解决方案

以下是针对需求的具体实现步骤和代码:

  1. 拆分日期范围字符串
    先将日期范围字符串按分隔符' - '拆分为开始和结束日期的文本:

    Essential = 'Dec 31, 2022 - Jan 6, 2023'
    start_str, end_str = Essential.split(' - ')
    
  2. 解析为日期对象
    使用datetime模块的strptime方法,按照日期格式"%b %d, %Y"(月份缩写+日期+年份)将文本转为date对象:

    from datetime import datetime
    
    start_date = datetime.strptime(start_str, "%b %d, %Y").date()
    end_date = datetime.strptime(end_str, "%b %d, %Y").date()
    
  3. 获取ISO周数
    因为你用的%V是ISO周数(遵循ISO 8601标准,周一为一周起始,每年第一周需包含至少4天),可以通过isocalendar()方法获取周信息。你的例子中两个日期同属一个ISO周,直接取周数即可:

    # 验证两个日期是否属于同一ISO周
    if start_date.isocalendar()[1] == end_date.isocalendar()[1]:
        week_number = start_date.isocalendar()[1]
        print(week_number)  # 输出:1
    else:
        # 如果日期范围跨多个周,可根据需求处理,比如取起始周、结束周或所有周
        print("日期范围跨多个ISO周,请明确需求")
    

补充说明

  • isocalendar()返回的元组格式为(ISO年份, ISO周数, ISO星期几),其中星期几从1(周一)到7(周日)
  • 如果你的日期范围可能跨多个周,需要提前明确业务需求:是取范围覆盖的所有周数,还是仅取起始/结束周

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:10:25