【发布时间】:2018-02-07 10:14:36
【问题描述】:
我需要将日期/时间字符串转换为 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
【问题讨论】:
-
@slashcool 我的原始代码是 time.mktime(dt.datetime.strptime(tmp[0], '%Y-%m-%d %H:%M:%S.%f' ).timetuple()) 当我注意到 timetuple() 确实切断了微秒。这就是这个变化的原因。
标签: python-3.x datetime unix-timestamp