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

时间:2013-03-20 08:05:06

标签: python django time

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

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

到UNIX时间戳,如

1234567890.123

精度处于毫秒级。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

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

然后使用此答案Python Create unix timestamp five minutes in the future将datetime.datetime转换为unix时间戳。

答案 1 :(得分: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兼容而留在这里。)