0

我想转换一个日期字段(取自 PostgreSQL 字符串)

"2009-02-13 15:31:30.123000" 

到一个 UNIX 时间戳,如

1234567890.123

精度在毫秒级。我怎样才能做到这一点?

4

2 回答 2

1

您可以使用 datetime.datetime.strptime(some_datetime_string, '%Y-%m-%d %H:%M:%S.%f') 解析日期时间字符串。

然后使用这个答案Python Create unix timestamp in the future 五分钟将 datetime.datetime 转换为 unix 时间戳。

于 2013-03-20T08:12:52.003 回答
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

int()在 Python 2 中不需要转换,但为了与 Python 3 兼容而留在这里)。

于 2013-03-20T08:19:15.623 回答