好的,我来帮你系统梳理 Python datetime
库的日期与时间操作,从基础概念到常用方法和示例,方便快速掌握。
1️⃣ datetime
模块简介
datetime
是 Python 内置模块,用于处理 日期和时间。- 核心类:类说明
date
处理 日期(年、月、日)time
处理 时间(时、分、秒、微秒)datetime
处理 日期+时间timedelta
表示 时间间隔(加减时间)timezone
时区信息
2️⃣ 获取当前日期与时间
from datetime import datetime, date, time
# 当前日期时间
now = datetime.now()
print(now) # 2025-09-02 10:25:30.123456
# 当前日期
today = date.today()
print(today) # 2025-09-02
# 当前时间
t = time(14, 30, 15) # 指定时间
print(t) # 14:30:15
3️⃣ 创建指定日期和时间
from datetime import datetime, date
# 创建日期对象
d = date(2025, 9, 2)
print(d) # 2025-09-02
# 创建时间对象
from datetime import time
t = time(12, 45, 30)
print(t) # 12:45:30
# 创建完整 datetime
dt = datetime(2025, 9, 2, 12, 45, 30)
print(dt) # 2025-09-02 12:45:30
4️⃣ 日期时间格式化
4.1 strftime()
:datetime → 字符串
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 2025-09-02 10:25:30
print(now.strftime("%A, %d %B %Y")) # Tuesday, 02 September 2025
常用格式:
格式 | 含义 |
---|---|
%Y | 四位年 |
%m | 月(01-12) |
%d | 日(01-31) |
%H | 24小时制小时 |
%M | 分钟 |
%S | 秒 |
%A | 星期几全称 |
%B | 月份全称 |
4.2 strptime()
:字符串 → datetime
from datetime import datetime
dt_str = "2025-09-02 14:30:00"
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
print(dt) # 2025-09-02 14:30:00
5️⃣ 日期时间运算
使用 timedelta
:
from datetime import datetime, timedelta
now = datetime.now()
# 增加 5 天
future = now + timedelta(days=5)
print(future)
# 减少 2 小时
past = now - timedelta(hours=2)
print(past)
# 时间差
delta = future - now
print(delta.days, delta.seconds)
6️⃣ 获取日期时间属性
dt = datetime(2025, 9, 2, 14, 30, 15)
print(dt.year) # 2025
print(dt.month) # 9
print(dt.day) # 2
print(dt.hour) # 14
print(dt.minute) # 30
print(dt.second) # 15
print(dt.weekday()) # 0=周一, 6=周日
7️⃣ 时区操作
from datetime import datetime, timezone, timedelta
# UTC 时间
utc_now = datetime.now(timezone.utc)
print(utc_now)
# 转为北京时间(UTC+8)
bj_time = utc_now.astimezone(timezone(timedelta(hours=8)))
print(bj_time)
8️⃣ 总结
- 核心类:
date
、time
、datetime
、timedelta
、timezone
- 常用操作:
- 获取当前日期时间:
datetime.now()、date.today()
- 创建日期时间:
datetime(2025, 9, 2, 12, 0, 0)
- 格式化与解析:
strftime()、strptime()
- 日期计算:
timedelta(days=5, hours=2)
- 时区转换:
astimezone()
- 获取当前日期时间:
- 应用场景:日志时间处理、时间差计算、定时任务、日期格式化等
发表回复