1

なぜ次のことが起こるのですか?

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」を出力しているようです。それはすべてを混乱させます。

4

1 に答える 1