Python の pendulum モジュール は日付/時刻の変換と操作を可能にします。
これは、ユーザが日付/時刻のフォーマットを簡単に操作できるようにします。
このモジュールは、pytzモジュールが提供するすべての機能を有効にし、提供します。
pendulum モジュールのインストールは、コマンドラインから行います。
import pendulum
time = pendulum.now()
print(time)
|
pendulum モジュールのインポート
import pendulum
現在時刻を表示する
Now()` メソッドは、特定のゾーンの現在時刻を表示するために使用される。
例えば、以下の様になります。
from datetime import datetime
import pendulum
utc_time = pendulum.timezone('UTC')
pst_time = pendulum.timezone('America/Los_Angeles')
ist_time = pendulum.timezone('Asia/Calcutta')
print('Date Time in UTC =', datetime.now(utc_time))
print('Date Time in PST =', datetime.now(pst_time))
print('Date Time in IST =', datetime.now(ist_time))
|
結果を出力すると、以下の様になります。
2020-01-03T10:46:59.049040+05:30
timezoneオブジェクト とdatetime.now()` 関数は、異なるタイムゾーンの現在のタイムスタンプを利用するために使用されます。
例えば、以下の様になります。
import pendulum
utc = pendulum.now('UTC')
print('Date Time in UTC =', utc)
|
結果は以下の通りです。
import pendulum
utc = pendulum.now('UTC')
ist = utc.in_timezone('Asia/Calcutta')
print('Date Time in IST =', ist)
|
datetime モジュールを pendulum モジュールに置き換える。
import pendulum
d_t = pendulum.datetime(2020, 2, 29)
d_t.to_datetime_string()print(d_t)
dt_add = d_t.add(years=5)
print(dt_add)
dt_add = d_t.add(months=5)
print(dt_add)
dt_add = d_t.add(days=2)
print(dt_add)
dt_add = d_t.add(weeks=5)
print(dt_add)
dt_add = d_t.add(hours=5)
print(dt_add)
dt_add = d_t.add(minutes=5)
print(dt_add)
dt_add = d_t.add(seconds=5)
print(dt_add)
dt_sub = d_t.subtract(years=1)
print(dt_sub)
dt_sub = d_t.subtract(months=5)
print(dt_sub)
dt_sub = d_t.subtract(days=2)
print(dt_sub)
dt_sub = d_t.subtract(weeks=5)
print(dt_sub)
dt_sub = d_t.subtract(hours=5)
print(dt_sub)
dt_sub = d_t.subtract(minutes=5)
print(dt_sub)
dt_sub = d_t.subtract(seconds=5)
print(dt_sub)
|
結果は以下の通りです。
日付 時間 UTC = 2020-01-03T05:28:43.853647+00:00`.
タイムゾーンの変換
import pendulum
d_t1 = pendulum.datetime(2020, 2, 20)
d_t1.to_datetime_string()print(d_t1)
d_t2 = pendulum.datetime(2020, 2, 10)
d_t2.to_datetime_string()print(d_t2)
delta = d_t1 - d_t2
print(delta.start)
print(delta.end)
print(delta.in_days()) # 10
print(delta.in_hours()) # 240
|
結果は以下の通りです。
日付 時間 IST = 2020-01-03T11:05:20.756743+05:30`.
日付時刻の操作
pendulum モジュールには、年/月/時間、時/分/秒の単位で日付と時刻を操作するための add() と subtract() 関数が用意されています。
import pendulum
utc = pendulum.now('UTC')
print(utc .to_iso8601_string())
print(utc .to_formatted_date_string())
print(utc .to_w3c_string())
print(utc .to_date_string())
# supports strftime() tooprint(utc .strftime('%Y-%m-%d %H:%M:%S %Z%z'))
|
結果は以下の通りです。
import pendulum
first = pendulum.datetime(2012, 9, 5, 23, 26, 11, 0, tz='America/Toronto')
second = pendulum.datetime(2019, 9, 5, 20, 26, 11, 0, tz='America/Vancouver')
first.to_datetime_string()print(first.timezone_name)
second.to_datetime_string()print(second.timezone_name)
print(first == second)
print(first != second)
|
delta() 関数
delta()`関数は、2つのタイムスタンプの差分を提供します。

結果を出力すると、以下の様になります。

日付時刻の書式設定
strftime()`関数は、ユーザが独自のフォーマットで日付時刻をフォーマットすることを可能にします。

を出力します。
2020-01-03T07:17:28.650601Z
Jan 03, 2020
2020-01-03T07:17:28+00:00
2020-01-03
2020-01-03 07:17:28 UTC+0000
日付の比較
pendulum モジュールにより、タイムゾーンの単純な比較が可能です。

結果は以下の通りです。
America/Toronto
America/Vancouver
False
True
この記事もチェック:Pythonのpytzモジュールを使ってタイムゾーンを変更する方法
まとめ
このように、今回は pendulum モジュールが提供する機能を理解することができました。