代码如下:
#encoding=utf-8 print '中国' #日期的模糊查询 即读取不太符合标准的日期信息 import datetime import dateutil.parser def tryParse(date): kwargs = {} if isinstance(date,(tuple,list)): date=' '.join([str(x) for x in date]) elif isinstance(date, int): date=str(date) elif isinstance(date,dict): kwargs=date date = kwargs.pop('date') try: try: parsedate = dateutil.parser.parse(date, **kwargs) print 'date and parse result: %r->%s'%(date,parsedate) except ValueError: parsedate = dateutil.parser.parse(date,fuzzy=True, **kwargs) print 'Fuzzy: %r->%s'%(date,parsedate) except Exception,err: print "Can't parse" datelist=["January 3,2003", (5,"Oct",55), "Thursday, November 18", "7/24/04", "24-7-2005", {'date':"5-10-1998","dayfirst":True}, "5-10-18", 19960708, "11AM on the 11th day of 11th mothn,in the year of our Lord 1945"] for date in datelist: tryParse(date)
打印结果如下:
中国
date and parse result: 'January 3,2003'->2003-01-03 00:00:00
date and parse result: '5 Oct 55'->2055-10-05 00:00:00
date and parse result: 'Thursday, November 18'->2014-11-18 00:00:00
date and parse result: '7/24/04'->2004-07-24 00:00:00
date and parse result: '24-7-2005'->2005-07-24 00:00:00
date and parse result: '5-10-1998'->1998-10-05 00:00:00
date and parse result: '5-10-18'->2018-05-10 00:00:00
date and parse result: '19960708'->1996-07-08 00:00:00
Fuzzy: '11AM on the 11th day of 11th mothn,in the year of our Lord 1945'->1945-11-11 11:00:00