将字符串转换为datetime对象

gae*_*fan 10 python datetime

我想将此字符串转换为datetime对象:

Wed Oct 20 16:35:44 +0000 2010
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?或者我是否必须编写RE来解析元素,将Oct转换为10等等?

编辑:strptime很棒.然而,随着

datetime.strptime(date_str, "%a %b %d %H:%M:%S %z %Y")
Run Code Online (Sandbox Code Playgroud)

我明白了

ValueError: 'z' is a bad directive in format '%a %b %d %H:%M:%S %z %Y'
Run Code Online (Sandbox Code Playgroud)

即使%z似乎是正确的.

EDIT2:似乎不支持%z标记.见http://bugs.python.org/issue6641.我通过使用timedelta对象来适当地修改时间.

eum*_*iro 28

不需要RE.试试这个:

from dateutil import parser

yourDate = parser.parse(yourString)  
Run Code Online (Sandbox Code Playgroud)

因为"Wed Oct 20 16:35:44 +0000 2010"的回归 datetime.datetime(2010, 10, 20, 16, 35, 44, tzinfo=tzutc())

  • dateutil不在标准库中.它是PyPI,所以`pip install python-dateutil'可以工作.许可证是PSF. (2认同)

nmi*_*els 2

根据该字符串的来源位置,您也许可以使用datetime.strptime来解析它。唯一的问题是 strptime 依赖于一些特定于平台的东西,因此如果该字符串需要能够来自任意其他系统,并且所有日期和月份的定义不完全相同(Jun 或 June),您可以有麻烦。