code: def tzinfo_from_match(match_object):
      
      tz_utc = match_object.group('tz_utc')
      tz_sign = match_object.group('tz_sign')
      tz_hour = int(match_object.group('tz_hour') or 0)
      tz_minute = int(match_object.group('tz_minute') or 0)
      tz_second = int(match_object.group('tz_second') or 0)
  
      tzinfo = None
      if tz_utc is not None:
          tzinfo = UtcTimezone()
      elif tz_sign is not None:
          tz_delta = datetime.timedelta(hours=tz_hour,
                                        minutes=tz_minute,
                                        seconds=tz_second)
          if tz_delta == datetime.timedelta():
              tzinfo = UtcTimezone()
          else:
              tz_multiplier = int('%s1' % (tz_sign, ))
              tz_delta = tz_multiplier * tz_delta
              tzinfo = FixedOffsetTimezone(tz_delta)
  
      return tzinfo
docs: Create a timezone information object from a regular expression match.
  
      The regular expression match is expected to be from RE_DATE, RE_TIME or
      RE_DATETIME.
  
      @param match_object: The regular expression match.
      @type value: B{re}.I{MatchObject}
      @return: A timezone information object.
      @rtype: B{datetime}.I{tzinfo}