【Python】ulidから取り出したタイムスタンプを日本時刻に変換する

ulid-pyのインストール

Pythonでulidを扱うためにulid-pyをpipでインストールします。

$ pip install ulid-py

ulidからタイムスタンプを取得する

ulidから取り出します。タイムスタンプのタイムゾーンはUTCとなっています。

>>> import ulid
>>> u1 = ulid.new()
>>> u1.timestamp().datetime
datetime.datetime(2021, 1, 31, 14, 6, 14, 200000, tzinfo=datetime.timezone.utc)

UTC → JSTへ変換する

タイムゾーンをAsia/Tokyoへ変換します。

>>> import pytz
>>> t1.astimezone(pytz.timezone('Asia/Tokyo'))
datetime.datetime(2021, 1, 31, 23, 6, 14, 200000, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)

datetimeの値をyyyy/MM/dd形式の文字列へ変換します。

>>> t2 = t1.astimezone(pytz.timezone('Asia/Tokyo'))
>>> t2.strftime('%Y/%m/%d')
'2021/01/31'