2017-06-08 48 views
2

我想將我的時間戳轉換爲unixtime注意它不是UTC,但unixtime是不正確的。蟒蛇 - 將UTC時間戳轉換爲unixtime

import time 
import datetime 
from dateutil.parser import parse 

time_str = '2017-03-09T15:44:40.000-05:00' 

time_obj = parse(time_str) 

print time_obj 

unixtime = time.mktime(time_obj.timetuple()) 

print unixtime 

它返回的unixtime是1489092280.0代表到03/09/2017 @ 8:44pm (UTC)當我要的是1489074280

+0

只是在執行'int(unixtime)'不起作用? – Dadep

回答

2

time.mktime需要一個細分的本地時間,並將輸入視爲這樣,即將其轉換爲UTC,然後構建一個自始至終的時間戳記時間戳。既然你已經有了破舊UTC時間,你需要調用calendar.timegm代替:

>>> unixtime = calendar.timegm(time_obj.timetuple()) 
>>> print unixtime 
1489074280 
0

我相信你的結果是正確的。 15:45在-05:00時區是UTC的20:44(即8:44 pm)。