PythonのPendulumライブラリを使って日付や時刻の変換・操作を行う方法

スポンサーリンク

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つのタイムスタンプの差分を提供します。

Pendulum Module Installation
Pendulum Module Installation

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

Output Timezone
Output-Timezone

日付時刻の書式設定

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

Output Datetime Manipulations
Output-Datetime Manipulations

を出力します。

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 モジュールにより、タイムゾーンの単純な比較が可能です。

Output Delta Function
Output Delta Function

結果は以下の通りです。

America/Toronto
America/Vancouver
False
True

まとめ

このように、今回は pendulum モジュールが提供する機能を理解することができました。

タイトルとURLをコピーしました