由於@TimPietzcker建議,在dateutil包是要走的路,它正確和自動處理第3種格式:
>>> 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
實際上,這是我已經做了什麼,@TimPietzcker建議時......你可以在評論中看到.. !! ..但是對於真棒回覆(和代碼描述)而言,thanx .. !! – 2012-03-01 12:49:14
要安裝dateutil:'pip install python-dateutil'。這就像他們希望你認爲這不是一個合法的包,當他們不提供如何通過'pip'安裝它。 – ArtOfWarfare 2017-10-25 19:54:54