我正在使用highcharts,我正在解析Django webservice中的json以将其发送给我的查看器。
我正在努力做的是在python中获得date.utc("1970,9,21")
输出。
在python中模拟这个javascript函数最简单的方法是什么?
答案 0 :(得分:1)
在Python中模拟Date.UTC()
from javascript:
#!/usr/bin/env python3
from datetime import datetime, timedelta
assert year > 100
utc_time = datetime(year, month, day, hours, minutes, seconds, ms*1000)
millis = (utc_time - datetime(1970, 1, 1)) // timedelta(milliseconds=1)
输入为UTC时间。小时,分钟,秒,ms是可选的。该方法返回自1970年1月1日00:00:00 UTC以来的(非飞跃)毫秒数。
在Python 2上模拟/ timedelta(milliseconds=1)
:
#!/usr/bin/env python
from __future__ import division
from datetime import datetime, timedelta
def to_millis(utc_time, epoch=datetime(1970,1,1)):
td = utc_time - epoch
assert td.resolution >= timedelta(microseconds=1)
# return td.total_seconds()*1000 analog
return (td.microseconds + (td.seconds + td.days * 86400) * 10**6) / 10**3
使用//
获取整数而不是浮点数。
示例:
>>> import datetime
>>> (datetime.date(1970,9,21) - datetime.date(1970, 1, 1)).days * 86400000
22723200000
答案 1 :(得分:0)
根据你的评论@Stevanicus I want a string similar to 1107216000000 – azelix
这可能是您正在寻找的:
>>> from time import time
>>> time()
1447064407.092834
>>>
或者您可以使用calendar.timegm()
来提供UTC结果,无论当地时间设置如何。
>>> import calendar
>>> import datetime
>>> d = datetime.datetime(2015, 11, 9)
>>> calendar.timegm(d.timetuple())
1447027200
>>>