Python 如何使time.mktime与datetime.fromtimestamp保持一致?

Python 如何使time.mktime与datetime.fromtimestamp保持一致?,python,datetime,epoch,mktime,Python,Datetime,Epoch,Mktime,我希望下面的代码将返回0,但我得到-3600,有人能解释为什么吗?如何修复它?谢谢 导入日期时间 导入时间 ts=time.mktime(time.gmtime(0)) 打印时间.mktime(datetime.datetime.fromtimestamp(ts.timetuple()) time.mktime将本地时间中的时间元组转换为纪元后的秒数。由于time.gmtime(0)返回GMT时间元组,并且转换假定它是在您的本地时间,因此您会看到这种差异 你们当地时间是几点?夏令时?是的,伦敦

我希望下面的代码将返回0,但我得到-3600,有人能解释为什么吗?如何修复它?谢谢


导入日期时间
导入时间
ts=time.mktime(time.gmtime(0))
打印时间.mktime(datetime.datetime.fromtimestamp(ts.timetuple())

time.mktime
将本地时间中的时间元组转换为纪元后的秒数。由于
time.gmtime(0)
返回GMT时间元组,并且转换假定它是在您的本地时间,因此您会看到这种差异

你们当地时间是几点?夏令时?是的,伦敦的夏令时如果你在夏令时,你会比平时落后一小时(格林尼治标准时间),也就是-3600秒。这里没有错误。我想time.mktime不是time.gmtime的正确对等点,我们应该使用calendar.timegm。