Die DateTimeFormatter
Klassendokumentation definiert separate Symbole u
für Jahr und y
Jahr der Ära: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#patterns
Was ist der Unterschied zwischen Jahr und Jahr der Ära?
uuuu
Versusyyyy
beimDateTimeFormatter
Formatieren vonAntworten:
Die Antwort liegt in der Dokumentation zu IsoChronology
u
wird Ihnen das proleptische Jahr geben.y
wird Ihnen das Jahr der Ära geben.Der Unterschied ist hauptsächlich für Jahre der BC-Ära wichtig. Das proleptische Jahr 0 ist tatsächlich 1 v. Chr., Darauf folgt das proleptische Jahr 1, das 1 n. Chr. Ist. Das proleptische Jahr kann negativ sein, das Jahr der Ära nicht.
Hier ist ein Ausschnitt, der Ihnen hilft, die Funktionsweise zu veranschaulichen:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("'proleptic' : u '= era:' y G"); for (int i = 5; i > -6 ; i--) { LocalDate localDate = LocalDate.of(i, 3, 14); System.out.println(formatter.format(localDate)); }
Ausgabe:
proleptic : 5 = era: 5 AD proleptic : 4 = era: 4 AD proleptic : 3 = era: 3 AD proleptic : 2 = era: 2 AD proleptic : 1 = era: 1 AD proleptic : 0 = era: 1 BC proleptic : -1 = era: 2 BC proleptic : -2 = era: 3 BC proleptic : -3 = era: 4 BC proleptic : -4 = era: 5 BC proleptic : -5 = era: 6 BC
quelle