日期时间处理
datetime/date/time、strftime/strptime、timedelta、zoneinfo 时区
日期时间处理
datetime 模块提供了强大的日期时间处理能力,从格式化显示到复杂计算一应俱全。
学完本章你将掌握: 获取时间、strftime/strptime、timedelta 计算、时间戳转换。
一、获取当前时间
python
from datetime import datetime
now = datetime.now()
print(f"现在: {now}")
print(f"日期: {now.date()}")
print(f"时间: {now.time()}")
二、strftime 格式化输出
python
now = datetime.now()
print(now.strftime("%Y-%m-%d")) # 2024-07-22
print(now.strftime("%Y年%m月%d日 %H:%M")) # 2024年07月22日 14:30
print(now.strftime("%A")) # Monday
常用格式化代码:
| 代码 | 含义 | 示例 |
|---|---|---|
| %Y | 四位年 | 2024 |
| %m | 月份 | 07 |
| %d | 日期 | 22 |
| %H | 24小时 | 14 |
| %M | 分钟 | 30 |
| %S | 秒 | 00 |
| %A | 星期 | Monday |
三、strptime 解析字符串
python
dt = datetime.strptime("2024-07-22", "%Y-%m-%d")
print(dt.year, dt.month, dt.day) # 2024 7 22
四、timedelta 时间计算
python
from datetime import timedelta
now = datetime.now()
tomorrow = now + timedelta(days=1)
one_week_ago = now - timedelta(weeks=1)
# 计算两个日期的差距
birthday = datetime(2000, 1, 1)
days_old = (now - birthday).days
print(f"出生了 {days_old} 天")
五、时间戳
python
import time
ts = time.time()
dt = datetime.fromtimestamp(ts)
print(f"时间戳: {ts}")
print(f"对应时间: {dt}")
小结
datetime.now()获取当前时间strftime格式化输出,strptime解析输入timedelta进行时间加减fromtimestamp处理时间戳
小练习
- 打印当前日期,格式为
YYYY年MM月DD日 - 计算距离 2025 年元旦还有多少天