Python如何获取当前周所有日期并以指定格式存入列表
Python实现获取当前周所有日期存入列表
直接使用Python内置datetime标准库即可实现需求,无需安装额外第三方依赖,最终输出格式和你预期的YYYY-MM-DD字符串列表完全匹配。
完整可运行代码
from datetime import datetime, timedelta def get_current_week_dates(week_start_on_monday: bool = True) -> list: # 获取当前本地日期 today = datetime.today().date() # 定位本周起始日期 if week_start_on_monday: # weekday()返回值规则:0=周一,6=周日 week_start = today - timedelta(days=today.weekday()) else: # 切换为周日作为周起始的计算逻辑:isoweekday()返回值规则:1=周一,7=周日 week_start = today - timedelta(days=(today.isoweekday() % 7)) # 逐天生成7个日期,格式化为指定字符串后存入列表 week_list = [ (week_start + timedelta(days=i)).strftime('%Y-%m-%d') for i in range(7) ] return week_list # 调用示例 week = get_current_week_dates()
运行效果
假设当前日期为2022-06-09(周四,周起始为周一),week变量的输出结果为:
['2022-06-06', '2022-06-07', '2022-06-08', '2022-06-09', '2022-06-10', '2022-06-11', '2022-06-12']
自定义调整说明
- 周起始切换:默认周一为一周第一天,调用时传入
week_start_on_monday=False即可改为周日作为周起始 - 日期格式修改:如果需要其他输出格式,调整
strftime()内的格式化参数即可,例如要输出月/日/年格式,将参数改为'%m/%d/%Y' - 时区适配:如果需要获取指定时区的周日期,将
datetime.today()替换为对应时区的datetime对象即可,Python3.9+可直接用内置zoneinfo模块做时区转换
内容的提问来源于stack exchange,提问作者ApyGuy
相关产品推荐
相关产品推荐

