LocalDateTime Verhalten unerklärlich

watislav

Mitglied
Hallo kann mir jemand erklären warum folgender Test fehlschlägt?

Java:
    @Test
    public void testDate(){
        LocalDateTime date2015 = LocalDateTime.of(2015, 1, 1, 0, 0, 0, 0);
        LocalDateTime date2016 = LocalDateTime.of(2016, 1, 1, 0, 0, 0, 0);
       
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
                "YYYY",
                Locale.GERMAN)
                .withZone(ZoneId.of("Europe/Berlin"));
       
        assertEquals("2015", formatter.format(date2015));
        assertEquals("2016", formatter.format(date2016));
    }

Der Asudruck formatter.format(date2016) gibt "2015" als Jahr aus.

Hat es mit der Schaltsekunde am 30. Juni 2015 zu tun?
 
Oh man mist, nun bin ich dahintergekommen.
Ich kann es selber beantworten.

Im Pattern des Formatters habe ich große Y eingeben anstatt kleiner y.
Der Unterschied:
  • Y week-based-year
  • y year-of-era
Im Jahr 2016 war am 1. Januar noch die letzte (53.) Woche von 2015 gültig.
 

Neue Themen


Zurück
Oben