def METHOD_NAME(value: Union[datetime, StrBytesIntFloat]) -> datetime:
    """
    Parse a datetime/int/float/string and return a datetime.datetime.
    This function supports time zone offsets. When the input contains one,
    the output uses a timezone with a fixed offset from UTC.
    Raise ValueError if the input is well formatted but not a valid datetime.
    Raise ValueError if the input isn't well formatted.
    """
    if isinstance(value, datetime):
        return value
    number = get_numeric(value, 'datetime')
    if number is not None:
        return from_unix_seconds(number)
    if isinstance(value, bytes):
        value = value.decode()
    match = datetime_re.match(value)  # type: ignore
    if match is None:
        raise errors.DateTimeError()
    kw = match.groupdict()
    if kw['microsecond']:
        kw['microsecond'] = kw['microsecond'].ljust(6, '0')
    tzinfo = _parse_timezone(kw.pop('tzinfo'), errors.DateTimeError)
    kw_: Dict[str, Union[None, int, timezone]] = {k: int(v) for k, v in kw.items() if v is not None}
    kw_['tzinfo'] = tzinfo
    try:
        return datetime(**kw_)  # type: ignore
    except ValueError:
        raise errors.DateTimeError()