code: def parse_date(value):
      
      if value:
          t = parsedate_tz(value.strip())
          if t is not None:
              try:
                  year = t[0]
                  # unfortunately that function does not tell us if two digit
                  # years were part of the string, or if they were prefixed
                  # with two zeroes.  So what we do is to assume that 69-99
                  # refer to 1900, and everything below to 2000
                  if year >= 0 and year <= 68:
                      year += 2000
                  elif year >= 69 and year <= 99:
                      year += 1900
                  return datetime(*((year,) + t[1:7])) - timedelta(seconds=t[-1] or 0)
              except (ValueError, OverflowError):
                  return None
docs: Parse one of the following date formats into a datetime object:
  
      .. sourcecode:: text
  
          Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
          Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
          Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
  
      If parsing fails the return value is `None`.
  
      :param value: a string with a supported date format.
      :return: a :class:`datetime.datetime` object.