import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.Locale;
import java.util.stream.Stream;
public class Main {
public static void main
(String[] args
) { // Replace JVM's ZoneId, ZoneId.systemDefault() with the applicable one e.g.
// ZoneId.of("Europe/Berlin")
int defaultYear = LocalDate.now(ZoneId.systemDefault()).getYear();
DateTimeFormatter dtf = new DateTimeFormatterBuilder()
.appendPattern("dd.MM[.[uuuu][uu]]")
.parseDefaulting(ChronoField.YEAR, defaultYear)
// Test
Stream.of(
"12.11",
"12.11.21",
"12.11.2021"
).
forEach(s
-> System.
out.
println(LocalDate.
parse(s, dtf
))); }
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnRpbWUuWm9uZUlkOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyOwppbXBvcnQgamF2YS50aW1lLnRlbXBvcmFsLkNocm9ub0ZpZWxkOwppbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uU3RyZWFtOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCS8vIFJlcGxhY2UgSlZNJ3MgWm9uZUlkLCBab25lSWQuc3lzdGVtRGVmYXVsdCgpIHdpdGggdGhlIGFwcGxpY2FibGUgb25lIGUuZy4KCQkvLyBab25lSWQub2YoIkV1cm9wZS9CZXJsaW4iKQoJCWludCBkZWZhdWx0WWVhciA9IExvY2FsRGF0ZS5ub3coWm9uZUlkLnN5c3RlbURlZmF1bHQoKSkuZ2V0WWVhcigpOwoKCQlEYXRlVGltZUZvcm1hdHRlciBkdGYgPSBuZXcgRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyKCkKCQkJCQkJCQkuYXBwZW5kUGF0dGVybigiZGQuTU1bLlt1dXV1XVt1dV1dIikKCQkJCQkJCQkucGFyc2VEZWZhdWx0aW5nKENocm9ub0ZpZWxkLllFQVIsIGRlZmF1bHRZZWFyKQoJCQkJCQkJCS50b0Zvcm1hdHRlcihMb2NhbGUuRU5HTElTSCk7CgkJCgkJLy8gVGVzdAoJCVN0cmVhbS5vZigKCQkJCQkiMTIuMTEiLAoJCQkJCSIxMi4xMS4yMSIsCgkJCQkJIjEyLjExLjIwMjEiCgkJKS5mb3JFYWNoKHMgLT4gU3lzdGVtLm91dC5wcmludGxuKExvY2FsRGF0ZS5wYXJzZShzLCBkdGYpKSk7CQkKCX0KfQ==