なにをするか
pendulumの使い方を確認する
Official
GitHub
pendulumってなに
pythonのdatetimeライブラリも提供している時間や日付の取り回しを遥かに良くした便利ライブラリ。
用例
import pendulum
BETTER DATETIME : datetimeオブジェクトの改善
タイムゾーンの設定など
# 自動でAsia/Tokyoを設定してくれるのでnow関数は引数不要?
>>> now = pendulum.now()
>>> print(now.timezone)
Timezone('Asia/Tokyo')
# 2019年5月1日0時0分0秒をAsia/TokyoとUTCで表示
>>> in_utc = pendulum.datetime(2019, 5, 1, 0, 0, 0)
>>> in_utc.timezone
Timezone('UTC')
>>> print(in_utc)
2019-05-01T00:00:00+00:00
>>> in_jpn = in_utc.in_timezone("Asia/Tokyo")
>>> in_jpn.timezone
Timezone('Asia/Tokyo')
>>> print(in_jpn)
2019-05-01T09:00:00+09:00
# python:5/2を表示する
>>> in_utc = pendulum.datetime(2019, 5, 1, 0, 0, 0)
>>> dt = in_utc.in_timezone("Asia/Tokyo")
>>> tomorrow = dt.add(days=1)
>>> print(tomorrow)
2019-05-02T09:00:00+09:00
BETTER TIMEDELTA : timedeltaオブジェクトを改善
15日を時間に換算したり
>>> dur = pendulum.duration(days=15)
>>> print(dur)
2 weeks 1 day
>>> print(dur.weeks)
2
>>> print(dur.days)
15
>>> print(dur.hours)
0
>>> print(dur.in_hours())
360
DATETIME-AWARE INTERVAL : 日付に対応した期間計算
期間を計算
>>> in_utc = pendulum.datetime(2019, 5, 1, 0, 0, 0)
>>> week_later = in_utc.add(days=7)
>>> print(period)
<Period [2019-05-01T00:00:00+00:00 -> 2019-05-08T00:00:00+00:00]>
>>> ### 2019.8.13時点、pendulum==2.0.5では↓はAttributeErrorになります
>>> period.in_weekdays()
EASY TIMEZONES MANIPULATION : 簡単なタイムゾーン操作
タイムゾーンの変換
>>> in_jpn = pendulum.datetime(2019, 5, 1, 0, 0, 0, tz="Asia/Tokyo")
>>> tz = pendulum.timezone('Europe/Paris')
>>> in_paris = tz.convert(in_jpn)
>>> print(in_paris)
2019-04-30T17:00:00+02:00
おわり
- python標準のdatetimeと併用もできて、足りない機能は簡単に追加できる
- documentationがすこし不親切だが、標準ライブラリ(特にtimedelta)がなれるのに時間がかかる仕様と比較すると、感覚的に使えるpendulumは総合的にかなり親切設計。