我需要将日期/时间字符串转换为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
答案 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