2015-02-10 51 views
0

我有一个日期列表。有些日期使用from dateutil import parser进行分析,但其他日期不会。这不得到解析日期的列表是: -Python中的分析器日期

date1 = 'Tue Feb 10 2015 12 52pm IST' 
date2 = '10 February 15 08 35am' 
date3 = '2015 02 10 08 24 26 UTC' 

我解析日期以下列方式: -

try: 
    date = re.sub('[^a-zA-Z0-9\n\.]', ' ', date) 
    print date 
    print (parser.parse(date)).date() 
except Exception,e: 
    print e 

如何可以解析所有的日期格式?这些是从网页报废的日期。

最终输出的格式应该"Monday, 09 Feb"

回答

1

的,不要取出这么多的信息。留在:冒号(你的正则表达式将它们删除,但我敢打赌,在你将它们击倒之前,它们在那里)。如果有时间分隔符,你的日期解析得很好:

>>> from dateutil.parser import parse 
>>> date1 = 'Tue Feb 10 2015 12 52pm IST' 
>>> parse(date1) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Users/mpieters/Development/venvs/stackoverflow-2.7/lib/python2.7/site-packages/dateutil/parser.py", line 743, in parse 
    return DEFAULTPARSER.parse(timestr, **kwargs) 
    File "/Users/mpieters/Development/venvs/stackoverflow-2.7/lib/python2.7/site-packages/dateutil/parser.py", line 310, in parse 
    ret = default.replace(**repl) 
ValueError: hour must be in 0..23 
>>> date1_with_colon = 'Tue Feb 10 2015 12:52pm IST' 
>>> parse(date1_with_colon) 
datetime.datetime(2015, 2, 10, 12, 52) 
>>> date2_with_colon = '10 February 15 08:35am' 
>>> parse(date2_with_colon) 
datetime.datetime(2015, 2, 10, 8, 35) 
>>> date3_with_colon = '2015 02 10 08:24:26 UTC' 
>>> parse(date3_with_colon) 
datetime.datetime(2015, 2, 10, 8, 24, 26, tzinfo=tzutc())