Extracting date from a string in Python
Question: How can I extract the date from a string like "monkey 2010-07-10 love banana"?
Thanks!


Answer: Using [python-dateutil](http://labix.org/python-dateutil):

    
    
    In [1]: import dateutil.parser as dparser
    
    In [18]: dparser.parse("monkey 2010-07-10 love banana",fuzzy=True)
    Out[18]: datetime.datetime(2010, 7, 10, 0, 0)
    

Invalid dates raise a `ValueError`:

    
    
    In [19]: dparser.parse("monkey 2010-07-32 love banana",fuzzy=True)
    # ValueError: day is out of range for month
    

It can recognize dates in many formats:

    
    
    In [20]: dparser.parse("monkey 20/01/1980 love banana",fuzzy=True)
    Out[20]: datetime.datetime(1980, 1, 20, 0, 0)
    

Note that it makes a guess if the date is ambiguous:

    
    
    In [23]: dparser.parse("monkey 10/01/1980 love banana",fuzzy=True)
    Out[23]: datetime.datetime(1980, 10, 1, 0, 0)
    

But the way it parses ambiguous dates is customizable:

    
    
    In [21]: dparser.parse("monkey 10/01/1980 love banana",fuzzy=True, dayfirst=True)
    Out[21]: datetime.datetime(1980, 1, 10, 0, 0)
    

