我有一个系统(用Python开发),可以将datetime接受为各种格式的字符串,而且我必须解析它们。当前的datetime字符串格式为:
Fri Sep 25 18:09:49 -0500 2009
2008-06-29T00:42:18.000Z
2011-07-16T21:46:39Z
1294989360
现在我想要一个可以在适当的datetime对象中转换任何这些datetime格式的通用解析器 ...
否则,我必须单独分析它们。因此,还请提供单独解析它们的方法(如果没有通用解析器)。
正如@TimPietzcker所建议的那样,dateutil包是必经之路,它可以正确并自动处理前三种格式:
>>> from dateutil.parser import parse
>>> parse("Fri Sep 25 18:09:49 -0500 2009")
datetime.datetime(2009, 9, 25, 18, 9, 49, tzinfo=tzoffset(None, -18000))
>>> parse("2008-06-29T00:42:18.000Z")
datetime.datetime(2008, 6, 29, 0, 42, 18, tzinfo=tzutc())
>>> parse("2011-07-16T21:46:39Z")
datetime.datetime(2011, 7, 16, 21, 46, 39, tzinfo=tzutc())
它似乎采用了unixtime格式,但幸运的datetime.datetime
是,该标准适用于该任务:
>>> from datetime import datetime
>>> datetime.utcfromtimestamp(float("1294989360"))
datetime.datetime(2011, 1, 14, 7, 16)
使用此函数可以轻松处理所有4种格式:
from dateutil.parser import parse
from datetime import datetime
def parse_time(s):
try:
ret = parse(s)
except ValueError:
ret = datetime.utcfromtimestamp(s)
return ret
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句