def METHOD_NAME(date_value, datetime_format, preprocessing_parameters):
    try:
        if isinstance(date_value, datetime):
            datetime_obj = date_value
        elif isinstance(date_value, date):
            datetime_obj = datetime.combine(date=date_value, time=datetime.min.time())
        elif isinstance(date_value, str) and datetime_format is not None:
            try:
                datetime_obj = datetime.strptime(date_value, datetime_format)
            except ValueError:
                datetime_obj = parse_datetime(date_value)
        else:
            datetime_obj = parse_datetime(date_value)
    except Exception as e:
        logger.error(
            f"Error parsing date: '{date_value}' with error '{e}' "
            "Please provide a datetime format that parses it "
            "in the preprocessing section of the date feature "
            "in the config. "
            "The preprocessing fill in value will be used."
            "For more details: "
            "https://ludwig-ai.github.io/ludwig-docs/latest/configuration/features/date_features/#date-features-preprocessing"  # noqa
        )
        fill_value = preprocessing_parameters["fill_value"]
        if fill_value != "":
            datetime_obj = parse_datetime(fill_value)
        else:
            datetime_obj = datetime.now()
    return create_vector_from_datetime_obj(datetime_obj)