Widzieliście to? Koledzy mieli szampańskiego Sylwestra przez ten babol (JDK 8u151 na x86_64-linux):
public static void main(String... args) {
final String date = DateTimeFormatter
.ofPattern("YYYY-MM-dd_HH-mm-ss")
.format(LocalDateTime.of(2017, 12, 31, 7, 5));
System.out.println(date);
}
Wynik: 2018-12-31_07-05-00
To jest bardzo interesujące. Na compilejava.net wyrzuca -> 2018-12-31_07-05-00 :-D
RTFM :D W dokumentacji DateTimeFormattera jest wyraźnie napisane, że "YYYY" to nie to samo co "yyyy". W tym przypadku "YYYY" reprezentuje week-based-year (https://en.wikipedia.org/wiki/ISO_week_date)
Ktoś mądry wyjaśni dlaczego tak się stało? :D