Python 3.6の概要 (その6 - ローカル時間の曖昧さを解消)
夏時間を採用している地域では、1日に2回、同じ時間となる場合がある。たとえば、アメリカの東部時間では、11月第1日曜日の午前2時に夏時間が終了すると、また同じ日の午前1時にもどる。つまり、この日は午前1時は2回存在することとなり、このタイムゾーンで 2016年11月1日1時0分0秒
という時間は、正確には何時なのか、特定することはできない。
そこで、PEP 495: Local Time Disambiguation では、Datetimeオブジェクトにあらたに fold
属性を追加し、最初の2016年11月1日01:00:00
なら fold
が0
、2回めなら1
となるように変更された。
>>> import os >>> os.environ['TZ'] = 'US/Eastern' # タイムゾーンをUS/Easternに設定 >>> datetime.fromtimestamp(1478408400) # 最初の 2016/11/06 01:00:00 datetime.datetime(2016, 11, 6, 1, 0) >>> datetime.fromtimestamp(1478408400+3600) # 2回目の 2016/11/06 01:00:00 datetime.datetime(2016, 11, 6, 1, 0, fold=1)