String.format("%s лает г%sв! %s", getName(), sb, formatter.format(new Date()))
В задании пример вывода в консоль
*** Барбос ***  лает гааааав! 13-ноя-2013 Ср
У меня с использованием <formatter>
public abstract class SuperDog {
    protected String getSuperQuotes() {
        //some logic here
        return " *** ";
    }

    protected SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy EEE");
}
Вывод в консоль получился таким
*** Барбос ***  лает гаав! 02-мар.-2018 пт
Вопрос: 1. В условии месяц без точки, почему у меня выводит с точкой?
//условие
ноя
//вывод у меня
мар.
2. День недели с большой буквы, у меня с маленькой, почему?
//условие
Ср
//вывод у меня
пт
метод
public Sayable toSayable(final int i) {
    class DogPet extends SuperDog implements Sayable {
        private String getName(){
            return String.format("%2$s%s%2$s", name, getSuperQuotes());
        }

        @Override
        public String say() {
            if (i < 1){
                return String.format("%s спит.", getName());
            }else {
                StringBuilder sb = new StringBuilder();
                for (int j = 0; j < i; j++){
                    sb.append("а");
                }

                return String.format("%s лает г%sв! %s", getName(), sb, formatter.format(new Date()));
            }
        }
    }
   return new DogPet();
}