🕒 Python datetime 超全指南:时间管理大师养成手册
“时间是程序员的敌人。” ——每一个调过时区 Bug 的人
今天我们来彻底征服 Python 的时间系统。本文涵盖 datetime 的全部核心用法,从基础创建到时区处理,从格式化到时间戳,从计算到坑点,全都讲清楚。
准备好了吗?系好安全带,我们要穿越时空了。
一、时间世界的四大金刚
Python 的时间体系主要来自:
这个模块里有几个核心类:
此外还有:
二、创建时间对象
1️⃣ 创建 date
输出:
常用属性:
2️⃣ 创建 time
支持微秒:
3️⃣ 创建 datetime
三、获取当前时间
Warning
utcnow() 不带时区信息,是“假 UTC”。
推荐写法:
四、时间戳(timestamp)
获取时间戳
返回自 1970-01-01 起的秒数。
时间戳转 datetime
UTC 版本:
推荐:
五、时间计算(timedelta)
创建时间差
支持:
- days
- seconds
- microseconds
- milliseconds
- minutes
- hours
- weeks
时间加减
两个时间相减:
六、格式化与解析(重点)
1️⃣ 格式化:strftime
常用格式符:
2️⃣ 解析:strptime
⚠ 格式必须完全匹配,否则报错。
七、时区处理(高级)
1️⃣ 固定时区
2️⃣ 推荐方案:zoneinfo(3.9+)
其他例子:
"Asia/Shanghai""UTC""America/New_York"
时区转换
八、naive vs aware(大坑)
判断:
⚠ 千万不要混着算:
九、替换时间字段
⚠ 不会自动进位
十、常用实战技巧
获取今天
获取本月第一天
获取昨天
判断是否同一天
十一、排序与比较
datetime 支持比较:
可以直接排序:
十二、ISO 格式
生成:
解析:
十三、性能与最佳实践
推荐导入方式
✅ 推荐:
❌ 不推荐:
生产环境建议
- 永远存 UTC
- 展示时转本地
- 不使用
utcnow() - 使用
zoneinfo - 不混用 naive/aware
十四、常见坑位清单
十五、终极总结
你需要记住的核心
datetime是主力timedelta用于计算strftime/strptime用于转换zoneinfo处理时区- 永远优先使用 aware datetime
声明:本站所有文章,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。-- mikigo
