Python如何从给定yyyy-mm-dd格式日期获取上一周对应日期
需求实现方案
需求为从yyyy-mm-dd格式的日期字符串中,计算上一周对应日期,最终输出仍为yyyy-mm-dd格式字符串。
方法1:Python标准库datetime实现(无第三方依赖)
from datetime import datetime, timedelta # 输入的日期字符串 x = '2021-01-02' # 1. 将字符串转换为日期对象 date_obj = datetime.strptime(x, '%Y-%m-%d').date() # 2. 减去7天得到上一周对应日期 last_week_date = date_obj - timedelta(days=7) # 3. 转换回yyyy-mm-dd格式字符串 last_week_str = last_week_date.strftime('%Y-%m-%d') print(last_week_str) # 输出结果:2020-12-26
方法2:pandas实现(适合pandas数据处理场景)
如果你的项目已经在使用pandas,也可以用pandas的时间处理方法实现:
import pandas as pd x = '2021-01-02' last_week_str = (pd.to_datetime(x) - pd.Timedelta(days=7)).strftime('%Y-%m-%d') print(last_week_str) # 输出结果:2020-12-26
原代码报错原因
- 输入的
x是字符串类型,无法直接调用时间类的相关计算方法,必须先完成字符串到日期类型的转换 - 原生datetime库没有
shift方法,该方法是pandas时间序列的专属方法,不能混用 datetime.date.x的写法错误,x是你自定义的变量,不是datetime.date类的内置属性,因此会抛出属性不存在的报错
内容的提问来源于stack exchange,提问作者doskitele
相关产品推荐
相关产品推荐

