Z
ZHANK
常用技能

日期时间处理

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
%H24小时14
%M分钟30
%S00
%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}")

小结

  1. datetime.now() 获取当前时间
  2. strftime 格式化输出,strptime 解析输入
  3. timedelta 进行时间加减
  4. fromtimestamp 处理时间戳

小练习

  1. 打印当前日期,格式为 YYYY年MM月DD日
  2. 计算距离 2025 年元旦还有多少天