日時を表す形式はいろいろありますが、ここでは ISO 8601 形式の文字列を datetime オブジェクトに変換する方法について記載します。
環境
- python 3.6
python 3.7 以降では fromisoformat()
が使えるみたいですが、今回は諸事情により python 3.6 を対象としています。
datetime オブジェクトへの変換
単純に変換するだけのサンプルコードです。
from datetime import datetime
timestamp = "2018-03-30T12:34:56.789Z"
dt = datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S.%f%z')
print(dt)
出力結果
2018-03-30 12:34:56.789000+00:00
datetime オブジェクト同士で差分を計算する場合
from datetime import datetime
import pytz
timestamp = "2018-03-30T12:34:56.789Z"
dt = datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S.%f%z')
utc_now = datetime.now(pytz.timezone('UTC'))
tdelta = utc_now - dt
print(tdelta.total_seconds())
出力結果
60572020.293181