JDK dateformatter 解析 DayOfWeek in German locale, java8 vs java9
我已经尝试了Java 8(1.8.0_77)和Java 9(Java HotSpot(TM)64位服务器VM(build 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' 无法在 java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1988) at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1890) at day.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:
格式 = 钼
jdk-9(内部版本 9+181)
格式 = 钼。