Service

public List<PostDTO> fullSearch(String text, String start, String end) {
    //esse epochmilli garante que se o usuário não passar o início,
    // ele pegue a data de 1970 (menor valor possível)
    Instant startMoment = convertMoment(start, Instant.ofEpochMilli(0L));

    //Caso o usuário não passe nada, será o instant de agora.
    //ou seja: com certeza não tem nenhum post da hora atual
    Instant endMoment = convertMoment(end, Instant.now());

    List<Post> posts = postRepository.fullSearch(text, startMoment, endMoment);

    return posts.stream().map(PostDTO::new).toList();
}

private Instant convertMoment(String originalString, Instant alternative) {
    try {
        return Instant.parse(originalString);
    }
    catch (DateTimeParseException e) {
        return alternative;
    }
}

Atualizado