将String转换为Python Date对象

时间:2015-11-15 01:25:37

标签: python string parsing datetime

我有一个String,Sent: Fri Sep 18 00:30:12 2009,我想把它变成一个Python日期对象。

我知道strptime()函数可以这样使用:

>>> dt_str = '9/24/2010 5:03:29 PM'
>>> dt_obj = datetime.strptime(dt_str, '%m/%d/%Y %I:%M:%S %p')
>>> dt_obj
datetime.datetime(2010, 9, 24, 17, 3, 29)

任何人都可以想到一种更简单的方法来实现这一点,而不是通过一堆条件来解析Sep, month = 9吗?

2 个答案:

答案 0 :(得分:1)

要解析rfc 822-like date-time string,您可以使用email stdlib包:

>>> from email.utils import parsedate_to_datetime
>>> parsedate_to_datetime('Fri Sep 18 00:30:12 2009')
datetime.datetime(2009, 9, 18, 0, 30, 12)

这是Python 3代码,请参阅Python 2.6+ compatible code

您还可以提供显式格式字符串:

>>> from datetime import datetime
>>> datetime.strptime('Fri Sep 18 00:30:12 2009', '%a %b %d %H:%M:%S %Y')
datetime.datetime(2009, 9, 18, 0, 30, 12)

请参阅the table with the format codes

答案 1 :(得分:0)

使用python-dateutil库!

首先:pip install python-dateutil进入你的虚拟env,如果你有一个,那么你可以运行以下代码:

from dateutil import parser

s = u'Sent: Fri Sep 18 00:30:12 2009'
date = parser.parse(s.split(':', 1)[-1])