在Python中解析任意日期格式(包括rfc3164)

时间:2015-03-05 13:13:59

标签: python date-parsing

PHP具有惊人的strtotime()功能,几乎可以将任何内容转化为时间。

我在Python中寻找类似的东西?

作为原因的一个例子:我正在解析具有最愚蠢格式的系统日志(又名rfc3164),它省略了一年并且包括一个空间填充的日期。

目前在Python中我正在这样做:

import datetime
d='Mar  5 09:10:11' # as an example

# first remove the space, if it exists
if d[4] == ' ':
   d = d[0:4] + d[5:]
# append this year (I know, it could be last year around Dec/Jan!)
d =  str(datetime.datetime.now().year) + ' ' + d

# now we can feed it strptime
date = datetime.strptime(d, "%Y %b %d %H:%M:%S")

这真的很难看。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找dateutils模块:

In [12]: d = 'Mar  5 09:10:11'

In [13]: import dateutil

In [14]: dateutil.parser.parse(d)
Out[14]: datetime.datetime(2015, 3, 5, 9, 10, 11)