Use the default
argument to set the default date. This should handle all the cases except the third one, which is somewhat ambiguous and probably needs some parser tweaking or a mindreader:
In [15]: from datetime import datetime
In [16]: from dateutil import parser
In [17]: DEFAULT_DATE = datetime(2013,1,1)
In [18]: dates=["Today is August 2012. Tomorrow isn't",
...: "Another day 12 August, another time",
...: "12/08 is another format",
...: "have another ? 08/12/12 could be",
...: "finally august 12 would be"]
In [19]: for date in dates:
...: print parser.parse(date,fuzzy=True, default=DEFAULT_DATE)
...:
2012-08-01 00:00:00
2013-08-12 00:00:00
2013-12-08 00:00:00 # wrong
2012-08-12 00:00:00
2013-08-12 00:00:00