def METHOD_NAME(s):
    """
    Convert a string (with a timezone) to a date time object with a timezone
    :param s:
    :return:
    FIXME: We should not be raising a SystemExit within a utility function
    """
    words = s.split()
    if len(words) < 2 or len(words) > 3:
        raise SystemExit("ERROR: unexpected date format %s" % s)
    thedatetime = str(words[0] + ' ' + words[1])
    try:
        # hoping to find timezone -0400
        with_timezone = datetime.strptime(thedatetime, '%Y-%m-%d %H:%M:%S%z')
    except ValueError:
        try:
            # hoping to find no timezone
            without_timezone = datetime.strptime(thedatetime, '%Y-%m-%d %H:%M:%S')
            my_timezone = get_timezone()
            with_timezone = my_timezone.localize(without_timezone)
        except ValueError:
            try:
                # hoping to find timezone -04
                thedatetime = thedatetime+"00"
                print("dateutils read_submitty_date -- added '00' to ", thedatetime)
                with_timezone = datetime.strptime(thedatetime, '%Y-%m-%d %H:%M:%S%z')
            except ValueError:
                print("DATE PROBLEM", s)
                raise SystemExit("ERROR:  invalid date format %s" % s)
    return with_timezone