欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用Pendulum優(yōu)雅處理日期與時間

 更新時間:2025年06月05日 09:26:39   作者:蕭鼎  
在日常開發(fā)中,日期和時間的處理一直是讓人頭疼的事情,本文將全面介紹?pendulum?的特點(diǎn),用法以及典型應(yīng)用場景,希望可以幫助大家在實(shí)際項目中優(yōu)雅地處理時間邏輯

在日常開發(fā)中,日期和時間的處理一直是讓人頭疼的事情。雖然 Python 內(nèi)置的 datetime 模塊功能強(qiáng)大,但使用起來冗長、容易出錯,對時區(qū)支持也不夠友好。而 pendulum 正是為了解決這些痛點(diǎn)而生的現(xiàn)代化日期時間庫。

本文將全面介紹 pendulum 的特點(diǎn)、用法以及典型應(yīng)用場景,并與 datetime 模塊進(jìn)行對比,幫助你在實(shí)際項目中優(yōu)雅地處理時間邏輯。

一、為什么選擇 Pendulum

在你接觸 pendulum 之前,可能已經(jīng)習(xí)慣于這樣寫代碼:

from datetime import datetime, timedelta, timezone

now = datetime.now()
later = now + timedelta(days=3)

然而,如果你需要處理時區(qū)轉(zhuǎn)換、自然語言式時間表達(dá)、日期范圍、持續(xù)時間等需求時,datetime 的語法就顯得冗長而繁瑣。

而使用 pendulum,代碼變成這樣:

import pendulum

now = pendulum.now("Asia/Shanghai")
later = now.add(days=3)

是不是清晰不少?

二、安裝 Pendulum

Pendulum 可以通過 pip 快速安裝:

pip install pendulum

安裝完成后,導(dǎo)入方式非常簡單:

import pendulum

三、核心功能與語法解析

3.1 獲取當(dāng)前時間

pendulum.now()                         # 使用本地時區(qū)
pendulum.now("UTC")                   # 使用指定時區(qū)
pendulum.today("Asia/Shanghai")       # 獲取今天0點(diǎn)
pendulum.yesterday("Asia/Shanghai")   # 獲取昨天
pendulum.tomorrow("Asia/Shanghai")    # 獲取明天

3.2 創(chuàng)建時間對象

dt = pendulum.datetime(2025, 6, 4, 15, 30, tz="Asia/Shanghai")

相比原生 datetime.datetime,pendulum.datetime 支持直接指定時區(qū)字符串,無需手動構(gòu)造 timezone 對象。

還可以通過 from_format 快速解析:

dt = pendulum.from_format("2025-06-04 15:30", "YYYY-MM-DD HH:mm", tz="Asia/Shanghai")

3.3 自然語言解析時間

pendulum.parse("2025-06-04T15:30:00+08:00")
pendulum.parse("2025-06-04 15:30:00", tz="Asia/Shanghai")

3.4 時間加減(Duration)

now = pendulum.now()
three_days_later = now.add(days=3)
one_week_ago = now.subtract(weeks=1)

甚至可以鏈?zhǔn)秸{(diào)用:

now.add(days=1).subtract(hours=2)

3.5 時間比較

dt1 = pendulum.datetime(2025, 6, 1)
dt2 = pendulum.datetime(2025, 6, 4)

print(dt1 < dt2)               # True
print(dt1.diff(dt2).in_days())  # 3

支持 .is_before()、.is_after()、.is_same_day() 等方法。

3.6 時區(qū)處理

dt = pendulum.datetime(2025, 6, 4, 15, 30, tz="UTC")
local_dt = dt.in_timezone("Asia/Shanghai")

還可以輕松獲取所有時區(qū):

pendulum.timezones  # 返回所有支持的時區(qū)列表

3.7 格式化與字符串轉(zhuǎn)換

now = pendulum.now()
print(now.to_datetime_string())       # "2025-06-04 15:30:00"
print(now.format("YYYY-MM-DD HH:mm"))  # "2025-06-04 15:30"

支持使用 moment.js 的格式化語法,非常自然。

3.8 持續(xù)時間(Durations)

duration = pendulum.duration(days=2, hours=5, minutes=30)
print(duration.total_minutes())  # 2*24*60 + 5*60 + 30 = 3090

你也可以對時間進(jìn)行差值計算:

start = pendulum.datetime(2025, 6, 1)
end = pendulum.datetime(2025, 6, 4)
diff = end - start
print(diff.in_days())  # 3

四、日期區(qū)間與范圍處理

處理時間段是數(shù)據(jù)分析、報表等任務(wù)的常見需求。pendulum 提供 period 和 intervals 工具:

start = pendulum.datetime(2025, 6, 1)
end = pendulum.datetime(2025, 6, 10)
period = pendulum.period(start, end)

for dt in period.range("days"):
    print(dt.to_date_string())

還可以使用:

period.days         # 獲取所有日期組成的列表
period.includes(pendulum.datetime(2025, 6, 4))  # 判斷某個時間是否在范圍內(nèi)

五、與 datetime 的兼容性

pendulum 是 datetime 的完全替代品,它繼承了 datetime.datetime,并向下兼容所有用法。

from datetime import datetime
import pendulum

dt = pendulum.now()
isinstance(dt, datetime)  # True

這意味著你可以在現(xiàn)有項目中逐步替換 datetime 為 pendulum,無需大改動。

六、典型應(yīng)用場景

6.1 多時區(qū)日程應(yīng)用

event_time = pendulum.parse("2025-06-04 18:00", tz="America/New_York")
user_time = event_time.in_timezone("Asia/Shanghai")
print(user_time.format("YYYY-MM-DD HH:mm"))

6.2 自動任務(wù)觸發(fā)器

now = pendulum.now()
if now.is_weekday() and now.hour == 9:
    print("開始執(zhí)行每日工作任務(wù)")

6.3 數(shù)據(jù)報表日期范圍

start = pendulum.today().subtract(days=6)
end = pendulum.today()

for day in pendulum.period(start, end).range("days"):
    print(f"處理報表:{day.to_date_string()}")

6.4 人類可讀的時間間隔(humanize)

dt = pendulum.now().subtract(days=2, hours=3)
print(dt.diff_for_humans())  # “2 days ago”

支持中英文,適合用于日志、用戶提示信息等。

七、與其他時間庫對比

特性datetimearrowpendulum
原生支持時區(qū)???(強(qiáng))
人性化輸出???(更好)
日期范圍處理???
國際化支持???(多語言)
與原生兼容性???
安裝包體積

pendulum 結(jié)合了 arrow 的易用性和 datetime 的兼容性,是目前處理時間的最佳選擇之一。

八、總結(jié)

pendulum 是一個現(xiàn)代化、直觀且功能豐富的 Python 時間處理庫。無論你是開發(fā)金融系統(tǒng)、定時任務(wù)調(diào)度、日志系統(tǒng),還是需要處理復(fù)雜的時間邏輯,pendulum 都能大大簡化你的代碼。

推薦理由總結(jié):

  • API 更加直觀
  • 對時區(qū)支持優(yōu)秀
  • 支持日期范圍
  • 高度兼容 datetime
  • 支持人類可讀輸出
  • 性能優(yōu)于 arrow

如果你還在用 datetime 并苦于寫一堆格式轉(zhuǎn)換、手動處理時區(qū)和計算間隔,不妨從下一個項目開始試試 pendulum,相信你會愛上它。

到此這篇關(guān)于Python使用Pendulum優(yōu)雅處理日期與時間的文章就介紹到這了,更多相關(guān)Python Pendulum處理日期與時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論