Python – calendar.timegm()与time.mktime()

我似乎很难得到这个头。

calendar.timegm()time.mktime()什么time.mktime()

说我有一个datetime.datetime没有tzinfo附加,不应该两个给出相同的输出? 难道他们都不是把时代和date之间的秒数作为参数吗? 而由于通过的date没有tzinfo,是不是秒数相同?

 >>> import calendar >>> import time >>> import datetime >>> d = datetime.datetime(2010, 10, 10) >>> calendar.timegm(d.timetuple()) 1286668800 >>> time.mktime(d.timetuple()) 1286640000.0 >>> 

time.mktime()假定传递的元组是在本地时间, calendar.timegm()假定它是在GMT / UTC。 取决于解释,元组表示不同的时间,所以函数返回不同的值(从历元开始的UTC是基于UTC的)。

这些值之间的差异应该等于您当地时区的时区偏移量。

calendar.timegm从UTC时间戳转换 , time.mktime从不是UTC的本地时间转换 。

8小时的结果差异完全对应于您所在位置的时区。