Python3でISO 8601形式の時刻を取得する
現在のローカル時刻をタイムゾーン付きのISO 8601形式(YYYY-MM-DDThh:mm:ss±hh:mm)で取得します。 Python3.6からはnaiveなdatetimeオブジェクトもastimezone()を使えるようになりました。
import datetime # --- python3.3以降 --- utctime = datetime.datetime.now(datetime.timezone.utc) # awareな現在UTC時刻を取得 print(utctime.astimezone().isoformat()) # マイクロ秒有り # 実行結果:2018-01-05T00:06:32.095958+09:00 print(utctime.replace(microsecond=0).astimezone().isoformat()) # マイクロ秒無し # 実行結果:2018-01-05T00:06:32+09:00 # --- python3.6以降 --- localtime = datetime.datetime.now() # naiveな現在ローカル時刻を取得 print(localtime.astimezone().isoformat()) # マイクロ秒有り # 実行結果:2018-01-05T00:06:32.096458+09:00 print(localtime.replace(microsecond=0).astimezone().isoformat()) # マイクロ秒無し # 実行結果:2018-01-05T00:06:32+09:00