如何将日期字符串转换为时间戳?
我想把一个日期字段(从PostgreSQL字符串中获取的)
"2009-02-13 15:31:30.123000"
转换成一个UNIX时间戳,像这样
1234567890.123
精度要达到毫秒级别。我该怎么做呢?
2 个回答
1
首先,把它转换成一个 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
(在 Python 2 中不需要 int()
转换,但为了和 Python 3 兼容,这里保留了这个步骤)。
1
你可以使用 datetime.datetime.strptime(some_datetime_string, '%Y-%m-%d %H:%M:%S.%f') 来解析日期时间字符串。
然后可以参考这个答案 Python 创建未来五分钟的 Unix 时间戳,将 datetime.datetime 转换为 Unix 时间戳。