>>> import time
>>> time.strptime("01-31-2009", "%m-%d-%Y")
(2009, 1, 31, 0, 0, 0, 5, 31, -1)
>>> time.mktime((2009, 1, 31, 0, 0, 0, 5, 31, -1))
1233378000.0
>>> 60*60*24 # seconds in a day
86400
>>> 1233378000.0 / 86400
14275.208333333334
Run Code Online (Sandbox Code Playgroud)
time.mktime应该返回自纪元以来的秒数.因为我在午夜给它一个时间而且这个时期在午夜,所以结果不应该被一天中的秒数整除吗?
简短的回答:因为时区.
Epoch是UTC.
例如,我在IST(爱尔兰标准时间)或UTC + 1.time.mktime()是相对于我的时区,所以我的系统指的是
>>> time.mktime((2009, 1, 31, 0, 0, 0, 5, 31, -1))
1233360000.0
Run Code Online (Sandbox Code Playgroud)
因为你得到了结果1233378000,这表明你落后我5个小时
>>> (1233378000 - 1233360000) / (60*60)
5
Run Code Online (Sandbox Code Playgroud)
看一下time.gmtime()UTC工作的功能.