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

public class Main {
	public static void main(String[] args) {
		demonstrateResolverStyles("56-13-2013");
		demonstrateResolverStyles("29-02-2013");
		demonstrateResolverStyles("32-02-2013");
		demonstrateResolverStyles("28-13-2013");
	}

	static void demonstrateResolverStyles(String input) {
		System.out.println("Input string: " + input);
		try {
			System.out.println("Parsed using ResolverStyle.LENIENT => " + LocalDate.parse(input,
					DateTimeFormatter.ofPattern("d-M-u", Locale.ENGLISH).withResolverStyle(ResolverStyle.LENIENT)));
		} catch (DateTimeParseException e) {
			System.out.println(e.getMessage());
		}

		try {
			// Default is ResolverStyle.SMART
			System.out.println("Parsed using ResolverStyle.SMART => "
					+ LocalDate.parse(input, DateTimeFormatter.ofPattern("d-M-u", Locale.ENGLISH)));
		} catch (DateTimeParseException e) {
			System.out.println(e.getMessage());
		}

		try {
			System.out.println("Parsed using ResolverStyle.STRICT => " + LocalDate.parse(input,
					DateTimeFormatter.ofPattern("d-M-u", Locale.ENGLISH).withResolverStyle(ResolverStyle.STRICT)));
		} catch (DateTimeParseException e) {
			System.out.println(e.getMessage());
		}
		System.out.println();
	}
}