我有一本来自数据库的字典,我知道 create_dt 和 install_ts 匹配。
untimed = {'install_id': 399142, 'create_dt': datetime.datetime(2013, 7, 7, 0, 33, 2), 'install_ts': 1373157182}
当我运行以下代码时,在 QA 上一切都是正确的
>>(mktime(untimed['create_dt'].timetuple()) - untimed['install_ts']) / 3600
0.0
但是当我在笔记本电脑上本地运行它时,我得到(本地我在 PST)
>>(mktime(untimed['create_dt'].timetuple()) - untimed['install_ts']) / 3600
7.0
为什么我没有得到相同的时间戳?我知道 create_dt 是 UTC,但在本地它强制它为 PST(-700)。
注意:我已将问题缩小到此,但完整的问题是我尝试时得到错误的时间戳
mktime(datetime.strptime(install['click_date'],'%Y-%m-%d %H:%M:%S').timetuple())
更具体地说,为什么使用strftime 将 python 日期时间转换为纪元
>>> datetime.datetime(2012,04,01,0,0).strftime('%s') # This is equivalent to my issues above
'1333234800'
>>> (datetime.datetime(2012,04,01,0,0) - datetime.datetime(1970,1,1)).total_seconds()
1333238400.0
给出不同的值?