python - 我有一个对应于 2018 年第 1 周的 ISO 8601 周数(例如:201801)。pyth 中的最佳方法是什么
问题描述
我有一个 ISO 8601 周数,比如 201801 - 对应于 2018 年的第 1 周。
如何使用python提取一周内的日期?
解决方案
我会得到那一周的星期日,然后从那开始给 7 天。根据您希望在第 52 周发生的情况,您可能希望删除break
from datetime import datetime, timedelta
def days_from_weekstr(weekstr):
sunday = datetime.strptime(weekstr + "-0", "%Y%W-%w")
year = sunday.year
for i in range(7):
day = sunday + timedelta(1) * i
if day.year != year:
break
yield day.date()
用法:
>>> list(days_from_weekstr("201801"))
[datetime.date(2018, 1, 7), datetime.date(2018, 1, 8), datetime.date(2018, 1, 9), datetime.date(2018, 1, 10), datetime.date(2018, 1, 11), datetime.date(2018, 1, 12), datetime.date(2018, 1, 13)]
推荐阅读
- android - 应用程序登录代码无法正常工作
- java - 如何按日期对 Firebase DocumentReferences 地图进行排序?
- rust - Rust:没有引用时如何使用生命周期?
- r - 尝试在 R 中通过引用传递
- winapi - 设置进程 DPI 感知,以便系统补偿缩放因子
- python - 如何修复 subprocess.check_output() 的 None 返回值?
- reactjs - React - Cloud FireStore - 如何向该组件添加分页?
- objective-c - NSURLSession 同步调用
- sas - 如何在 SAS 数据集成中更改列中的数据?
- python - python - np.random.random 四舍五入到小数点后 1