なぜ次のことが起こるのですか?
from datetime import datetime
import pytz
d = pytz.utc.localize(datetime.utcnow())
print float(d.strftime('%s')) - float(d.replace(tzinfo=None).strftime('%s')) # 3600.0
tzinfo が含まれているかどうかに関係なく、なぜ 1 時間ずれているのですか? 私はそれが DST に関係していると仮定していますが... UTC には DST がありません。
d.timetuple()
# time.struct_time(tm_year=2013, tm_mon=10, tm_mday=21, tm_hour=17, tm_min=44, tm_sec=40, tm_wday=0, tm_yday=294, tm_isdst=0)
d.replace(tzinfo=None).timetuple()
# time.struct_time(tm_year=2013, tm_mon=10, tm_mday=21, tm_hour=17, tm_min=44, tm_sec=40, tm_wday=0, tm_yday=294, tm_isdst=-1)
したがって、違いはtm_isdst
または0
です-1
。どちらも非常に「No DST-ish」に見えます。
回避策にわくわくしていません。
アップデート:
いくつかのドキュメント(http://docs.python.org/2/library/time.html#time.mktime) を読んだ後mktime()
、私が思っていたように、UTCではなく「localtime」を出力しているようです。それはすべてを混乱させます。