在 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时间。小时、分钟、秒、毫秒是可选的。该方法返回自 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
见Converting datetime.date to UTC timestamp in Python。