用Pythonparsingdate时间..?
我有一个系统(Python开发)接受date时间作为VARIOUS格式的string ,我必须parsing它们。目前date时间string格式是:
Fri Sep 25 18:09:49 -0500 2009 2008-06-29T00:42:18.000Z 2011-07-16T21:46:39Z 1294989360
现在我想要一个通用的parsing器 ,可以在适当的date时间对象中转换任何这些date时间格式…
否则,我不得不单独parsing它们。 所以也请提供分别parsing它们的方法(如果没有genericsparsing器)..
正如@TimPietzckerbuild议的那样,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
你应该看看dateutil
包。