将Apache日志中的日期格式转换为Python 3中的ISO格式

时间:2019-02-06 23:51:23

标签: python-3.x python-datetime python-dateutil

我一直在尝试将apache日志中的日期格式转换为Python 3中的ISO格式,但是我似乎无法使其正常工作。

如果我仅包括天,月和年,而不包括小时,分钟和秒,则可以使它正常工作。

Text = "25/Jan/2000:14:00:01"
Date = dateutil.parser.parse(Text)
Date = Date.isoformat()
print(Date)

# I receive the following error messages below

 Traceback (most recent call last):
  File "Z:/Test.py", line 3, in <module>
    Date = dateutil.parser.parse(Text)
  File "Z:\Python\lib\site-packages\dateutil\parser\_parser.py", line 1356, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File "Z:\Python\lib\site-packages\dateutil\parser\_parser.py", line 648, in parse
    raise ValueError("Unknown string format:", timestr)
ValueError: ('Unknown string format:', '25/Jan/2000:14:00:01'

我也尝试使用datetime模块(datetime.datetime.strftime()),但出现相同的问题。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

这是因为parse()方法期望日期的字符串格式具有以下形式:25/Jan/2000 14:00:01。下一年后,您需要用空格替换:。 这样做是可行的:

Text = "25/Jan/2000:14:00:01"             
Date = parse(Text.replace(":", " ", 1))   
Date = Date.isoformat()                   
print(Date)