過去の日記

2016-05-18 [長年日記]

XML Schema で定義されている dateTime 表現形式の文字列を得る [Python]

要するに、RubyのTime#xmlschema。

from datetime import datetime
import pytz

datetime.now(pytz.timezone('Asia/Tokyo')).replace(microsecond=0).isoformat()
#=>'2016-05-18T10:42:40+09:00'

ミリ秒が要るか要らないかはお好みで。あと、pytzは標準モジュールではないので要インストール。


逆向きはPythonでのTimezone部分の取り扱いが微妙な感じなので、

datetime.strptime('2016-05-18T10:42:40+09:00'[:-6], '%Y-%m-%dT%H:%M:%S').replace(tzinfo=pytz.timezone('Asia/Tokyo'))
#=>datetime.datetime(2016, 5, 18, 10, 42, 40, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)

とかやってごまかすなど。