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小时的结果差异完全对应于您所在位置的时区。