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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:45:04