我有一个datetime类型,我想将其转换为int但以毫秒为单位的精度。例如,我在UTC中有日期时间2018-11-19 02:19:53.497,我希望将其转换为1542593993497
当前我编写的函数如下:
def convert(inputDatetime):
return int((inputDatetime - datetime.datetime(1970,1,1)).total_seconds())
此处的日期时间精度为百万秒,例如datetime.datetime(2009,3,20,13,55,18,993000)
该函数现在只能将日期时间转换为以秒为单位的int精度。我应该如何使精度达到百万秒?
我当前使用的Python版本是2.7
答案 0 :(得分:1)
从已接受的答案How can I convert a datetime object to milliseconds since epoch (unix time) in Python?
中获取import datetime
epoch = datetime.datetime.utcfromtimestamp(0)
def unix_time_millis(dt):
return (dt - epoch).total_seconds() * 1000.0
测试:
dt = datetime.datetime(2009, 3, 20, 13, 55, 18, 993000)
print("%d" % unix_time_millis(dt)) # 1237557318993
关键是计算(dt - epoch).total_seconds()
应该以浮点格式(包括毫秒)返回秒,然后乘以1000.0。