将字符串转换为日期时间对象
我想把这个字符串转换成一个日期时间对象:
Wed Oct 20 16:35:44 +0000 2010
有没有简单的方法可以做到这一点?还是说我必须写一个正则表达式来解析这些元素,把“十月”转换成“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看起来是正确的。
编辑2: %z这个标签似乎不被支持。可以查看这个链接了解更多信息:http://bugs.python.org/issue6641。 我通过使用一个timedelta对象来适当地调整时间,解决了这个问题。
5 个回答
2
这是一个链接,指向Python的官方文档,具体讲解了一个叫做`time.strptime`的功能。这个功能主要用来把字符串格式的时间转换成Python可以理解的时间格式。如果你想了解如何使用这个功能,可以点击这个链接查看详细信息。
28
不需要正则表达式。试试这个:
from dateutil import parser
yourDate = parser.parse(yourString)
对于 "Wed Oct 20 16:35:44 +0000 2010",返回的是 datetime.datetime(2010, 10, 20, 16, 35, 44, tzinfo=tzutc())
2
根据这个字符串的来源,你可能可以使用 datetime.strptime 来解析它。唯一的问题是,strptime 依赖于一些特定平台的东西,所以如果这个字符串需要来自不同的系统,而这些系统对日期和月份的定义不完全一样(比如“Jun”或“June”),你可能会遇到麻烦。