爲什麼會發生以下情況?爲什麼tzinfo會在python中創建一個紀元時間?
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時是否包含了tzinfo?我假設它與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
。兩者都顯得非常「沒有DST-ish」。
只是不解決這個問題。
更新:
閱讀一些文檔(http://docs.python.org/2/library/time.html#time.mktime),因爲我原以爲這似乎mktime()
輸出 「本地時間」 不UTC之後。其中一切都令人困惑。
您的標題提到*「新紀元時間」*。此答案顯示[如何將datetime.date和datatime.datetime轉換爲POSIX時間戳](http://stackoverflow.com/a/8778548/4279) – jfs