我想转换一个日期字段(取自 PostgreSQL 字符串)
"2009-02-13 15:31:30.123000"
到一个 UNIX 时间戳,如
1234567890.123
精度在毫秒级。我怎样才能做到这一点?
您可以使用 datetime.datetime.strptime(some_datetime_string, '%Y-%m-%d %H:%M:%S.%f') 解析日期时间字符串。
然后使用这个答案Python Create unix timestamp in the future 五分钟将 datetime.datetime 转换为 unix 时间戳。
首先,将其转换为datetime
对象:
>>> import datetime
>>> date = datetime.datetime.strptime("2009-02-13 15:31:30.123000",
... "%Y-%m-%d %H:%M:%S.%f")
>>> date
datetime.datetime(2009, 2, 13, 15, 31, 30, 123000)
然后,将其转换为时间戳:
>>> import time
>>> t = time.mktime(date.timetuple())
>>> t
1234535490.0
现在,添加微秒:
>>> t += date.microsecond/1000000.0
>>> t
1234535490.123
或者,如果您想丢弃不到一毫秒的任何内容:
>>> t += int(date.microsecond/1000)/1000.0
(int()
在 Python 2 中不需要转换,但为了与 Python 3 兼容而留在这里)。