Was ist der Unterschied zwischen Jahr und Jahr der Ära?


70

Die DateTimeFormatterKlassendokumentation definiert separate Symbole ufür Jahr und yJahr 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?



1
@ DonLarynx Ja. Es gibt auch ein drittes Symbol Y für das wochenbasierte Jahr. Ich kenne die Motivation dafür. Aber das beantwortet meine Frage nach dem Unterschied zwischen u und y nicht.
Glerup

Es gibt ein späteres Duplikat mit ein paar weiteren Ansern: uuuuVersus yyyybeim DateTimeFormatterFormatieren von
Ole VV

Antworten:


73

Die Antwort liegt in der Dokumentation zu IsoChronology

  • Ära - Es gibt zwei Epochen, "Current Era" (CE) und "Before Current Era" (BCE).
  • Jahr der Ära - Das Jahr der Ära ist das gleiche wie das proleptische Jahr für die aktuelle CE-Ära. Für die BCE-Ära vor der ISO-Epoche steigt das Jahr mit der Zeit von 1 aufwärts.
  • proleptisches Jahr - Das proleptische Jahr ist das gleiche wie das Jahr der Ära für die aktuelle Ära. Für die vorherige Ära haben Jahre Null, dann negative Werte.

uwird Ihnen das proleptische Jahr geben. ywird 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


8
Die anderen Chronologien können auch ihre eigenen Epochen haben, insbesondere die japanische
Jeffrey Bosboom
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.