将字符串转换为datetime对象

时间:2010-10-25 20:49:58

标签: python datetime

我想将此字符串转换为日期时间对象:

Wed Oct 20 16:35:44 +0000 2010

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

编辑: strptime很棒。但是,用

datetime.strptime(date_str, "%a %b %d %H:%M:%S %z %Y")

我得到了

ValueError: 'z' is a bad directive in format '%a %b %d %H:%M:%S %z %Y'

尽管%z似乎是正确的。

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

5 个答案:

答案 0 :(得分:28)

不需要RE。试试这个:

from dateutil import parser

yourDate = parser.parse(yourString)  

for“Wed Oct 20 16:35:44 +0000 2010”返回datetime.datetime(2010, 10, 20, 16, 35, 44, tzinfo=tzutc())

答案 1 :(得分:2)

答案 2 :(得分:2)

我很确定你能够使用datetime.strptime做到这一点。

来自文档:

  

datetime.strptime(date_string,format)

     

返回对应的日期时间   date_string,根据解析   格式。这相当于   日期时间(*(time.strptime(DATE_STRING,   格式)[0:6]))。引发ValueError   如果date_string和format不能   由time.strptime()或如果它解析   返回一个不是时间的值   元组。

答案 3 :(得分:2)

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

答案 4 :(得分:1)