python语法-------strptime + strftime + timedelta 终极区分(一次看懂)
·
strptime + strftime + timedelta 终极区分(一次看懂)
我把这三个最容易混淆的时间工具放在一起,用最简单的话 + 一张表彻底讲清楚,你马上就能分清!
一、一句话分清三者(核心)
| 函数 / 类 | 作用 | 方向 / 类型 | 口诀 |
|---|---|---|---|
| strptime | 把时间字符串 → 转成 时间对象 | 解析(读) | p = parse |
| strftime | 把时间对象 → 转成 时间字符串 | 格式化(写) | f = format |
| timedelta | 时间的加减法(几天、几小时、几分钟) | 时间运算 | delta = 差值 |
简单总结:
- strptime / strftime:管字符串 ↔ 时间对象互相转换
- timedelta:管时间计算(比如 3 天后、2 小时前)
二、详细用法(带完整示例)
先统一导入:
from datetime import datetime, timedelta # 用 datetime 模块更常用
1. strptime:字符串 → 时间对象(解析)
用途:你有一个文本时间,要让电脑能看懂它。
# 字符串时间
time_str = "2025-12-25 15:30:00"
# 解析成 时间对象
dt = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print(dt) # 2025-12-25 15:30:00
2. strftime:时间对象 → 字符串(格式化)
用途:把时间对象,变成你想要的展示格式。
# 时间对象
dt = datetime.now()
# 转成字符串
result = dt.strftime("%Y年%m月%d日 %H:%M")
print(result) # 2025年12月25日 15:30
3. timedelta:时间加减(计算)
用途:只能用来算时间差,不能单独表示时间!
支持:天、小时、分钟、秒、毫秒
# 当前时间
now = datetime.now()
# 1. 加 3天
after_3d = now + timedelta(days=3)
# 2. 减 2小时
before_2h = now - timedelta(hours=2)
# 3. 组合:1天2小时30分钟
mix = now + timedelta(days=1, hours=2, minutes=30)
三、三者联动实战(最常用场景)
需求:
- 有一个字符串时间
"2025-12-25 12:00:00" - 算出它 2 天后、3 小时前 的时间
- 再转成好看的中文格式输出
from datetime import datetime, timedelta
# 1. strptime:字符串 → 时间对象
dt = datetime.strptime("2025-12-25 12:00:00", "%Y-%m-%d %H:%M:%S")
# 2. timedelta:时间计算(+2天,-3小时)
new_dt = dt + timedelta(days=2, hours=-3)
# 3. strftime:时间对象 → 新字符串
result = new_dt.strftime("%Y年%m月%d日 %H时%M分")
print(result)
# 输出:2025年12月27日 09时00分
四、终极记忆口诀
- strptime:解析字符串 → 得时间对象(输入用)
- strftime:格式化对象 → 得字符串(输出用)
- timedelta:只做时间加减(计算用)
总结
- 转换用
strptime/strftime - 计算用
timedelta - 三者经常搭配使用,是 Python 处理时间的标准三件套
更多推荐


所有评论(0)