Python Unix时间在Javascript中失效
在Python中,使用calendar.timegm()函数,我得到一个10位数的Unix时间戳。当我把这个时间戳放入JavaScript的setTime()函数时,它显示的日期是1970年。这显然需要一个13位数的Unix时间戳。怎么会这样呢?它们是从同一个日期开始计算的吗?
我该如何在这两种语言之间使用相同的Unix时间戳呢?
在Python中:
In [60]: parseddate.utctimetuple()
Out[60]: (2009, 7, 17, 1, 21, 0, 4, 198, 0)
In [61]: calendar.timegm(parseddate.utctimetuple())
Out[61]: 1247793660
在Firebug中:
>>> var d = new Date(); d.setTime(1247793660); d.toUTCString()
"Thu, 15 Jan 1970 10:36:55 GMT"
4 个回答
2
你是不是把从1970年开始的秒数和从1970年开始的毫秒数搞混了?
9
这里有几个我用来在Python和JavaScript之间转换日期时间的方法。
def to_datetime(js_timestamp):
return datetime.datetime.fromtimestamp(js_timestamp/1000)
def js_timestamp_from_datetime(dt):
return 1000 * time.mktime(dt.timetuple())
在JavaScript中,你可以这样做:
var dt = new Date();
dt.setTime(js_timestamp);