如何用Python的datetime函数获取2022年第10周的起始日期?
获取2022年第10周的起始日期(Python实现)
可以通过Python的datetime模块轻松实现,以下是两种常用方法:
方法一:使用fromisocalendar(Python 3.8+)
该方法直接支持ISO标准周的日期计算,ISO周以周一为一周起始日,正好匹配需求的结果:
import datetime n = 10 target_year = 2022 # 获取第n周的第一天(周一) week_start = datetime.date.fromisocalendar(target_year, n, 1) # 按指定格式输出 print(week_start.strftime("%-m/%-d/%Y")) # 输出:3/7/2022
方法二:使用strptime兼容旧版本Python
如果你的Python版本低于3.8,可以用字符串解析的方式,利用ISO周的格式符实现:
import datetime n = 10 target_year = 2022 # 构造ISO周格式的字符串,%u表示周内第几天(1=周一) date_str = f"{target_year}-W{n}-1" week_start = datetime.datetime.strptime(date_str, "%G-W%V-%u").date() print(week_start.strftime("%-m/%-d/%Y")) # 输出:3/7/2022
注意事项
- 不同地区对“一周起始日”的定义不同:
%U以周日为起始,%W以周一为起始,而ISO周(%V)严格遵循周一为起始,且第一周需包含当年至少4天,这里用ISO周的逻辑能准确得到目标日期。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

