如何将日期字符串转换为时间戳?

0 投票
2 回答
1565 浏览
提问于 2025-04-17 19:43

我想把一个日期字段(从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 时间戳。

撰写回答