python3 でyyyymmddhhmmss形式をdatetime形式に変換する
python で byte 型のyyyymmddhhmmss形式をdatetime形式に変換します
native なdatetime形式
datetime パッケージを用いてdatetime型にします。
>>> from datetime import datetime >>> _time=b"20161229122800Z" >>> td = datetime.strptime( _time.decode('utf-8'), '%Y%m%d%H%M%SZ') >>> td datetime.datetime(2016, 12, 29, 12, 28)
これだとnative (UTCオンリー) となり、マルチリージョン対応が困難。
aware なdatetime形式
以下のようにして、aware な形式(オブジェクトの中にタイムゾーンの情報を思っている形式) にするにはpytz を用いる。
pytz は標準パッケージではないものの、準公式パッケージ相当の信頼性があるもよう。
// pytz のインストール % pip install pytz
awareなdateime形式を得る。
>>> from datetime import datetime >>> import pytz >>> _time=b"20161229122800Z" >>> td = datetime.strptime( _time.decode('utf-8'), '%Y%m%d%H%M%SZ').replace(tzinfo=pytz.utc) >>> td datetime.datetime(2016, 12, 29, 12, 28, tzinfo=<UTC>)
参考