code: def parse(value):
          
          match_result = RE_TIME.match(value)
          if match_result is None:
              raise ValueError('date data has invalid format "%s"' % (value, ))
  
          date = time_from_match(match_result)
          tzinfo = tzinfo_from_match(match_result)
  
          value = date.replace(tzinfo=tzinfo)
  
          return value
docs: Parse the string date.
  
          This supports the subset of ISO8601 used by xsd:time, but is lenient
          with what is accepted, handling most reasonable syntax.
  
          @param value: A time string.
          @type value: str
          @return: A time object.
          @rtype: B{datetime}.I{time}