Я пробовал некоторый код в Java 8 (1.8.0_77) и Java 9 (Java HotSpot (TM) 64-разрядный сервер VM (сборка 9 + 181, смешанный режим))
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("eee", Locale.GERMAN);
DayOfWeek mo = dtf.parse("Mo", DayOfWeek::from);
System.out.println("mo = " + mo);
Я не слишком хорошо разбираюсь в деталях этих классов, но в Java 8 это работает, печать:
mo = ПОНЕДЕЛЬНИК
В Java 9, однако, он терпит неудачу
Исключение в потоке "main" java.time.format.DateTimeParseException: текст 'Mo' не может быть проанализирован с индексом 0 в java.base/java.time.format.DateTimeFormatter.parseResolved0 (DateTimeFormatter.java:1988) в java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1890) в день .main(day.java:10)
Любые идеи, воспроизводится ли это?
поэтому при формировании: используя этот код:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("eee", Locale.GERMAN);
String format = dtf.format(DayOfWeek.MONDAY);
System.out.println("format = " + format);
jdk1.8.0-77:
format = Mo
jdk-9 (сборка 9 + 181)
format = Mo.