Pendulum是簡化了日期和時間操作的Python庫。它合並了
datetime
和
time
的功能,提供了人性化的時間操作介面,同時支持時區處理,使得時間操作更加直觀和方便。
「安裝」
pip install pendulum
獲取當前時間
import pendulum
now = pendulum.now()
print(now) # 輸出當前時間,例如:2021-10-04T12:10:59+08:00
獲取昨天、今天和明天
yesterday = pendulum.yesterday()
today = pendulum.today()
tomorrow = pendulum.tomorrow()
print(yesterday) # 昨天的時間
print(today) # 今天的時間
print(tomorrow) # 明天的時間
計算時間差
diff_days = today.diff(yesterday).in_days()
diff_hours = today.diff(yesterday).in_hours()
print(diff_days) # 輸出相差天數,例如:1
print(diff_hours) # 輸出相差小時數,例如:24
建立時區特定的時間
dt1 = pendulum.datetime(2021, 10, 3)
print(dt1.timezone.name) # 預設時區:UTC
dt2 = pendulum.datetime(2021, 10, 3, tz='Asia/Shanghai')
print(dt2.timezone_name) # 指定時區:Asia/Shanghai
不同時區的時間比較和轉換
first = pendulum.datetime(2012, 9, 5, 23, 26, 11, 0, tz='America/Toronto')
second = pendulum.datetime(2012, 9, 5, 20, 26, 11, 0, tz='America/Vancouver')
print(first.timezone_name) # America/Toronto
print(second.timezone_name) # America/Vancouver
# 時區相差3小時,但時間點相同
print(first == second) # True
print(first.diff(second).in_hours()) # 3
時區切換
in_perk = pendulum.now("Asia/Shanghai")
print(in_perk.in_timezone("America/New_York"))
比較時間
first = pendulum.datetime(2012, 1, 31, 0)
second = pendulum.datetime(2012, 2, 1, 0)
print(first < second) # True
計算時間差
period = first.diff(second)
print(period) # Period物件,表示時間差
時間增減
dt = pendulum.datetime(2012, 1, 31)
dt = dt.add(years=5)
print(dt) # '2017-01-31 00:00:00'
時間調整
計算起始和結束時間
dt = pendulum.datetime(2012, 1, 31, 12, 0, 0)
print(dt.start_of('day')) # '2012-01-31 00:00:00'
print(dt.end_of('day')) # '2012-01-31 23:59:59'
獲取特定星期的日期
dt = pendulum.datetime(2012, 1, 31, 12, 0, 0)
print(dt.next(pendulum.WEDNESDAY)) # 下一個星期三的日期
時間轉字串
格式化時間輸出
dt = pendulum.datetime(1975, 12, 25, 14, 15, 16)
print(dt.to_datetime_string()) # '1975-12-25 14:15:16'
print(dt.to_formatted_date_string()) # 'Dec 25, 1975'
解析字串為時間
dt = pendulum.parse('1975-05-21T22:00:00')
print(dt) # '1975-05-21T22:00:00+00:00'
人性化時間表示
顯示人性化時間差
print(pendulum.now().subtract(days=1).diff_for_humans()) # '1 day ago'
支持多語言
pendulum.set_locale('zh')
print(pendulum.now().subtract(days=1).diff_for_humans()) # '1天前'