在 Python 里,Pendulum 是一个比内置 datetime 更强大、易用的 日期时间处理库,功能包括:

  • 支持 时区管理(timezone-aware)
  • 易读的日期运算(加减天、月、年等)
  • 自然语言解析和格式化
  • 更好的 链式操作

1️⃣ 安装

pip install pendulum

2️⃣ 基本使用

import pendulum

# 当前时间
now = pendulum.now()
print(now)  # 2025-08-19T11:15:00+08:00

# 指定时区
tokyo_time = pendulum.now('Asia/Tokyo')
print(tokyo_time)

# 创建指定时间
dt = pendulum.datetime(2025, 8, 19, 12, 0, 0)
print(dt)

# 日期运算
tomorrow = now.add(days=1)
yesterday = now.subtract(days=1)
print("Tomorrow:", tomorrow)
print("Yesterday:", yesterday)

# 格式化输出
print(now.to_datetime_string())   # 2025-08-19 11:15:00
print(now.to_iso8601_string())    # 2025-08-19T11:15:00+08:00

3️⃣ 时间差与比较

start = pendulum.datetime(2025, 8, 19, 10)
end = pendulum.datetime(2025, 8, 19, 15)

diff = end - start
print(diff.in_hours())  # 5
print(diff.in_minutes())  # 300
print(diff.in_days())  # 0

# 比较
print(end > start)  # True

4️⃣ 自然语言处理

# 解析字符串时间
dt = pendulum.parse("2025-08-19 14:30:00")
print(dt)

# 人性化显示
print(dt.diff_for_humans())  # "in 3 hours" 或 "3 hours ago"

5️⃣ 时区转换

dt = pendulum.now('UTC')
print("UTC:", dt)

# 转换为上海时间
shanghai = dt.in_timezone('Asia/Shanghai')
print("Shanghai:", shanghai)

6️⃣ 周、季度操作

dt = pendulum.now()

# 获取周、季度信息
print("周几:", dt.day_of_week)  # 0 = 周一
print("季度:", dt.quarter)      # 1~4
print("本周开始:", dt.start_of('week'))
print("本周结束:", dt.end_of('week'))
print("本月开始:", dt.start_of('month'))
print("本月结束:", dt.end_of('month'))

Pendulum 的优势是 API 链式操作清晰、时区处理安全,适合做日志时间处理、定时任务和数据分析等。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐