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

public class ParsingKetat {
    public static void main(String[] args) {
        // Mode bawaan (SMART): tanggal tidak sahih disesuaikan diam-diam.
        DateTimeFormatter longgar = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        System.out.println("SMART 31/02/2026 : " + LocalDate.parse("31/02/2026", longgar));

        // Mode ketat (STRICT): tanggal tidak sahih ditolak lewat exception.
        // Pola memakai uuuu (tahun tanpa era) karena STRICT menuntutnya.
        DateTimeFormatter ketat = DateTimeFormatter.ofPattern("dd/MM/uuuu")
                .withResolverStyle(ResolverStyle.STRICT);
        try {
            LocalDate hasil = LocalDate.parse("31/02/2026", ketat);
            System.out.println("tidak terjadi: " + hasil);
        } catch (Exception e) {
            System.out.println("STRICT 31/02/2026 ditolak");
            System.out.println("pesan: " + e.getMessage());
        }
    }
}
