我想将此字符串转换为日期时间对象:
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对象来适当地修改时间。
答案 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)
time.strptime应该这样做: http://docs.python.org/library/time.html?highlight=time#time.strptime