日期时间字符串到 UNIX 时间(以毫秒为单位)

date-time-string to UNIX time with milliseconds

我需要将 date/time 字符串转换为 UNIX 时间戳,包括毫秒。由于 timetuple() 不包括毫秒或微秒,我做了一个简短的解决方法。但我想知道,是否有 better/nicer 方法可以做到这一点?

import datetime as dt
import time

timestamp = '2018-01-19 10:00:00.019'  # example of input time string 
tmp       = timestamp.split('.')
millisec  = tmp[-1]                    # extracting only milli-seconds
UX_time = time.mktime(dt.datetime.strptime(tmp[0], '%Y-%m-%d %H:%M:%S').timetuple()) + float(millisec)/1e3

print(UX_time)

1516352400.019

我知道我的时区偏差一小时,所以你可能会

print(UX_time)

1516356000.019

你可以试试这个:

timestamp = '2018-01-19 10:00:00.019' 
tmp=np.datetime64(timestamp)
print(tmp.view('<i8')/1e3)

输出:

1516352400.019

也可以使用您当前的代码:

import datetime as dt
import time

timestamp = '2018-01-19 10:00:00.019'  # example of input time string 
ts = dt.datetime.strptime(timestamp, '%Y-%m-%d %H:%M:%S.%f')
UX_time = time.mktime(ts.timetuple()) + ts.microsecond/1e6

print "%.3f" %UX_time