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() too print (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 モジュールが提供する機能を理解することができました。