date-time-string到UNIX时间,以毫秒为单位

时间:2018-02-07 10:14:37

标签: python-3.x datetime unix-timestamp

我需要将日期/时间字符串转换为UNIX时间戳,包括毫秒。由于timetuple()不包括毫秒或微秒,我做了一个简短的解决方法。但我想知道,有更好/更好的方法吗?

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

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

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

输出:

1516352400.019

答案 1 :(得分:0)

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

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