С этим действительно проблемы, вариантов несколько:
1) Откусить :)
2) Использовать модуль email:
>>> import email
>>> email.utils.parsedate_tz('Sun, 15 May 2011 09:59:59 +0400')
(2011, 5, 15, 9, 59, 59, 0, 1, -1, 14400)
>>> import datetime
>>> t = email.utils.parsedate_tz('Sun, 15 May 2011 09:59:59 +0400')
>>> datetime.datetime(*t[:6]) - datetime.timedelta(seconds=t[-1])
datetime.datetime(2011, 5, 15, 5, 59, 59)
3) Использовать
python-dateutil:
>>> import dateutil.parser
>>> dateutil.parser.parse('Sun, 15 May 2011 09:59:59 +0400')
datetime.datetime(2011, 5, 15, 9, 59, 59, tzinfo=tzoffset(None, 14400))
4) Использовать
pytz и откусывание/email
5) Откусывание/email + написание подклассов tzinfo вручную