import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
public class Main {
public static void main
(String[] args
) { Map
<Long, String
> shortMonthNameMap
= new HashMap
<>(); shortMonthNameMap.put(1L, "Jan.");
shortMonthNameMap.put(2L, "Feb.");
shortMonthNameMap.put(3L, "März");
// Similarly, put the remaining months of the year into shortMonthNameMap
Map
<Long, String
> longMonthNameMap
= new HashMap
<>(); longMonthNameMap.put(1L, "Januar");
longMonthNameMap.put(2L, "Februar");
longMonthNameMap.put(3L, "März");
// Similarly, put the remaining months of the year into longMonthNameMap
DateTimeFormatter fmt = new DateTimeFormatterBuilder()
.appendPattern("d. ")
.optionalStart()
.appendText(ChronoField.MONTH_OF_YEAR, shortMonthNameMap)
.optionalEnd()
.optionalStart()
.appendText(ChronoField.MONTH_OF_YEAR, longMonthNameMap)
.optionalEnd()
.appendPattern(" HH:mm")
.parseDefaulting(ChronoField.YEAR, Year.now().getValue())
System.
out.
println(LocalDateTime.
parse("10. Jan. 18:14", fmt
)); System.
out.
println(LocalDateTime.
parse("10. Januar 18:14", fmt
)); System.
out.
println(LocalDateTime.
parse("8. Feb. 19:02", fmt
)); }
}
aW1wb3J0IGphdmEudGltZS4qOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyOwppbXBvcnQgamF2YS50aW1lLnRlbXBvcmFsLkNocm9ub0ZpZWxkOwppbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CmltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOwppbXBvcnQgamF2YS51dGlsLk1hcDsKCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBNYXA8TG9uZywgU3RyaW5nPiBzaG9ydE1vbnRoTmFtZU1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICBzaG9ydE1vbnRoTmFtZU1hcC5wdXQoMUwsICJKYW4uIik7CiAgICAgICAgc2hvcnRNb250aE5hbWVNYXAucHV0KDJMLCAiRmViLiIpOwogICAgICAgIHNob3J0TW9udGhOYW1lTWFwLnB1dCgzTCwgIk3DpHJ6Iik7CiAgICAgICAgLy8gU2ltaWxhcmx5LCBwdXQgdGhlIHJlbWFpbmluZyBtb250aHMgb2YgdGhlIHllYXIgaW50byBzaG9ydE1vbnRoTmFtZU1hcAoKICAgICAgICBNYXA8TG9uZywgU3RyaW5nPiBsb25nTW9udGhOYW1lTWFwID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgIGxvbmdNb250aE5hbWVNYXAucHV0KDFMLCAiSmFudWFyIik7CiAgICAgICAgbG9uZ01vbnRoTmFtZU1hcC5wdXQoMkwsICJGZWJydWFyIik7CiAgICAgICAgbG9uZ01vbnRoTmFtZU1hcC5wdXQoM0wsICJNw6RyeiIpOwogICAgICAgIC8vIFNpbWlsYXJseSwgcHV0IHRoZSByZW1haW5pbmcgbW9udGhzIG9mIHRoZSB5ZWFyIGludG8gbG9uZ01vbnRoTmFtZU1hcAoKICAgICAgICBEYXRlVGltZUZvcm1hdHRlciBmbXQgPSBuZXcgRGF0ZVRpbWVGb3JtYXR0ZXJCdWlsZGVyKCkKICAgICAgICAgICAgICAgIC5hcHBlbmRQYXR0ZXJuKCJkLiAiKQogICAgICAgICAgICAgICAgLm9wdGlvbmFsU3RhcnQoKQogICAgICAgICAgICAgICAgLmFwcGVuZFRleHQoQ2hyb25vRmllbGQuTU9OVEhfT0ZfWUVBUiwgc2hvcnRNb250aE5hbWVNYXApCiAgICAgICAgICAgICAgICAub3B0aW9uYWxFbmQoKQogICAgICAgICAgICAgICAgLm9wdGlvbmFsU3RhcnQoKQogICAgICAgICAgICAgICAgLmFwcGVuZFRleHQoQ2hyb25vRmllbGQuTU9OVEhfT0ZfWUVBUiwgbG9uZ01vbnRoTmFtZU1hcCkKICAgICAgICAgICAgICAgIC5vcHRpb25hbEVuZCgpCiAgICAgICAgICAgICAgICAuYXBwZW5kUGF0dGVybigiIEhIOm1tIikKICAgICAgICAgICAgICAgIC5wYXJzZURlZmF1bHRpbmcoQ2hyb25vRmllbGQuWUVBUiwgWWVhci5ub3coKS5nZXRWYWx1ZSgpKQogICAgICAgICAgICAgICAgLnRvRm9ybWF0dGVyKExvY2FsZS5HRVJNQU4pOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oTG9jYWxEYXRlVGltZS5wYXJzZSgiMTAuIEphbi4gMTg6MTQiLCBmbXQpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oTG9jYWxEYXRlVGltZS5wYXJzZSgiMTAuIEphbnVhciAxODoxNCIsIGZtdCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihMb2NhbERhdGVUaW1lLnBhcnNlKCI4LiBGZWIuIDE5OjAyIiwgZm10KSk7CiAgICB9Cn0=