2017-08-14 81 views
0
import time 
print(int(time.mktime(time.strptime('2017-08-12T17:07:46', '%Y-%m-%dT%H:%M:%S')))) 

我得到1502582866,我期望1502557666?欢迎任何帮助Python日期到EPOCH转换

+0

我认为'mktime'被解释为是你当地的时间,我猜是太平洋。如果你想要1502557666,你需要输入'mktime'的时区为UTC。 – Paul

回答

0

是,@保罗是正确的:根据文档,mktime将采取struct_time当地时间并从纪元,它没有时区,也没有夏令时转换为秒。

所以,你的初始时间:

`2017-08-12T17:07:46` 

变为:

1502582866 ==> `GMT: Sunday, August 13, 2017 12:07:46 AM` 

这是正确的。

如果你想知道如何正确地转换回来,你会用localtime

import time 
epoch_time = 1502582866 
time_string = time.strftime('%Y-%m-%dT%H:%M:%S', time.localtime(epoch_time)) 
print time_string 
>> 2017-08-12T17:07:46 

而且在行动中看到的样品在这里:https://eval.in/845075