Python将日期时间转换为int(精度以毫秒为单位)

时间:2018-11-19 02:34:46

标签: python-2.7 datetime

我有一个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

1 个答案:

答案 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。