现在的位置: 首页 > 综合 > 正文

003_007 Python 日期的模糊查询 即读取不太符合标准的日期信息

2017年12月10日 ⁄ 综合 ⁄ 共 1243字 ⁄ 字号 评论关闭

代码如下:

#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

抱歉!评论已关闭.