Get available Sentinel-2 acquisitions at least time_difference apart

        List of all available Sentinel-2 acquisitions for given bbox with max cloud coverage and the specified
        time interval. When a single time is specified the request will return that specific date, if it exists.
        If a time range is specified the result is a list of all scenes between the specified dates conforming to
        the cloud coverage criteria. Most recent acquisition being first in the list.

        When a time_difference threshold is set to a positive value, the function filters out all datetimes which
        are within the time difference. The oldest datetime is preserved, all others all deleted.

        :param request: OGC-type request
        :type request: WmsRequest or WcsRequest
        :return: List of dates of existing acquisitions for the given request
        :rtype: list(datetime.datetime) or [None]

def get_dates(self, request):
        """ Get available Sentinel-2 acquisitions at least time_difference apart

        List of all available Sentinel-2 acquisitions for given bbox with max cloud coverage and the specified
        time interval. When a single time is specified the request will return that specific date, if it exists.
        If a time range is specified the result is a list of all scenes between the specified dates conforming to
        the cloud coverage criteria. Most recent acquisition being first in the list.

        When a time_difference threshold is set to a positive value, the function filters out all datetimes which
        are within the time difference. The oldest datetime is preserved, all others all deleted.

        :param request: OGC-type request
        :type request: WmsRequest or WcsRequest
        :return: List of dates of existing acquisitions for the given request
        :rtype: list(datetime.datetime) or [None]
        """
        if DataSource.is_timeless(request.data_source):
            return [None]

        date_interval = parse_time_interval(request.time)

        LOGGER.debug('date_interval=%s', date_interval)

        if request.wfs_iterator is None:
            self.wfs_iterator = WebFeatureService(request.bbox, date_interval, data_source=request.data_source,
                                                  maxcc=request.maxcc, base_url=self.base_url,
                                                  instance_id=self.instance_id)
        else:
            self.wfs_iterator = request.wfs_iterator

        dates = sorted(set(self.wfs_iterator.get_dates()))

        if request.time is OgcConstants.LATEST:
            dates = dates[-1:]
        return OgcService._filter_dates(dates, request.time_difference)