def get_start_date_of_data_fetching(self):
        """Retrieve the start date for data fetching.

        If no start date is provided, it calculates the start date based on a default lookup day.
        If the provided start date is invalid, it will fail and raise an exception.

        Returns:
            str: The start date for data fetching in the format specified by consts.DATE_TIME_FORMAT.
        """
        __method_name = inspect.currentframe().f_code.co_name
        try:
            if not consts.START_DATE:
                start_date = (
                    datetime.datetime.utcnow()
                    - datetime.timedelta(days=consts.DEFAULT_LOOKUP_DAY)
                ).strftime(consts.DATE_TIME_FORMAT)
                return start_date
            try:
                start_date = datetime.datetime.strptime(
                    consts.START_DATE, "%Y-%m-%d"
                ).strftime(consts.DATE_TIME_FORMAT)
                applogger.info(
                    self.log_format.format(
                        consts.LOGS_STARTS_WITH,
                        __method_name,
                        self.azure_function_name,
                        "Start date given by user is {}".format(start_date),
                    )
                )
                # * if start date is future date, raise exception
                if start_date > datetime.datetime.utcnow().strftime(
                    consts.DATE_TIME_FORMAT
                ):
                    applogger.error(
                        self.log_format.format(
                            consts.LOGS_STARTS_WITH,
                            __method_name,
                            self.azure_function_name,
                            "Start date given by user is future date",
                        )
                    )
                    raise MimecastException()
                return start_date
            except ValueError:
                applogger.error(
                    self.log_format.format(
                        consts.LOGS_STARTS_WITH,
                        __method_name,
                        self.azure_function_name,
                        "Start date given by user is not valid",
                    )
                )
                raise MimecastException()
        except MimecastException:
            raise MimecastException()
        except Exception as err:
            applogger.error(
                self.log_format.format(
                    consts.LOGS_STARTS_WITH,
                    __method_name,
                    self.azure_function_name,
                    consts.UNEXPECTED_ERROR_MSG.format(err),
                )
            )
            raise MimecastException()
Retrieve the start date for data fetching.

        If no start date is provided, it calculates the start date based on a default lookup day.
        If the provided start date is invalid, it will fail and raise an exception.

        Returns:
            str: The start date for data fetching in the format specified by consts.DATE_TIME_FORMAT.
        
Solutions/Mimecast/Data Connectors/MimecastSEG/MimecastDLP/mimecast_dlp_to_sentinel.py