import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.time.format.ResolverStyle;

class Ideone {

    private static final DateTimeFormatter BASIC = DateTimeFormatter.ofPattern("dd/MM/uuuu");

    public static void main(String[] args) {
        testes("29/02/2016", "29/02/2017", "30/06/2017", "31/06/2017", "04/27/2017", "abacaxi", "99/99/2000");
	}

    private static void testes(String... valores) {
        for (String valor : valores) {
            teste(valor);
        }
    }

    private static void teste(String valor) {
        for (ResolverStyle rs : ResolverStyle.values()) {
            DateTimeFormatter d = BASIC.withResolverStyle(rs);
            try {
                LocalDate date = LocalDate.parse(valor, d);
                String resultado = date.format(d);
                System.out.println(valor + " formatado com " + rs + " é " + resultado + ".");
            } catch (DateTimeParseException e) {
                System.out.println(valor + " não é válido se for formatado com " + rs + ".");
            }
        }
        System.out.println();
    }
}