Wie zeige ich v. Chr./n. Chr. oder andere Epochenbezeichnungen an?

Verwenden Sie die Option "era" in Intl.DateTimeFormat, um Anno Domini, vor Christus und Epochenbezeichnungen aus anderen Kalendersystemen anzuzeigen

Einführung

Die meisten Datumsangaben, mit denen Sie arbeiten, liegen innerhalb der aktuellen Epoche des gregorianischen Kalenders, sodass Epochenbezeichnungen in der Regel nicht erforderlich sind. Ein Datum wie „15. Oktober 2024“ ist ohne den Zusatz „n. Chr.“ eindeutig. Historische Daten, die mehr als zweitausend Jahre zurückliegen, benötigen jedoch Epochenbezeichnungen, um zu verdeutlichen, ob das Jahr vor oder nach Jahr 1 liegt.

Verschiedene Kulturen verwenden zudem unterschiedliche Kalendersysteme mit eigenen Epochen. Der japanische Kalender unterteilt die Zeit in benannte Kaiser-Epochen wie Reiwa und Heisei. Der buddhistische Kalender zählt die Jahre ab Buddhas Tod. Der islamische Kalender hat seine eigene Epoche, die mit der Hidschra beginnt.

JavaScripts Intl.DateTimeFormat bietet eine era-Option, die diese Bezeichnungen anzeigt. Die Option funktioniert sowohl mit dem gregorianischen Kalender als auch mit anderen Kalendersystemen und formatiert die Epoche automatisch gemäß den Konventionen der jeweiligen Sprache.

Epochen in Kalendersystemen verstehen

Eine Epoche bezeichnet einen Zeitraum, der von einem bedeutenden Ereignis oder Ausgangspunkt an gezählt wird. Der gregorianische Kalender verwendet zwei Epochen: n. Chr. (Anno Domini, „im Jahr des Herrn“) für Daten nach Jahr 1 und v. Chr. (vor Christus) für Daten vor Jahr 1.

Die Epoche wird wichtig, wenn historische Daten angezeigt werden. Das Jahr 500 könnte sich auf 500 n. Chr. oder 500 v. Chr. beziehen – zwei Daten, die tausend Jahre auseinanderliegen. Die Angabe der Epoche beseitigt diese Unklarheit.

Andere Kalendersysteme definieren Epochen unterschiedlich. Im japanischen Kalender wechselt die Epoche mit jeder Kaiserherrschaft. Der buddhistische Kalender verwendet eine einzige Epoche, die 543 v. Chr. beginnt. Jedes Kalendersystem hat eigene Konventionen zur Darstellung von Epochenbezeichnungen.

Ära-Indikatoren in gregorianischen Daten anzeigen

Die Option era akzeptiert drei Werte, die steuern, wie die Ära angezeigt wird. Der Wert long zeigt den vollständigen Ära-Namen an. Der Wert short zeigt eine abgekürzte Form an. Der Wert narrow zeigt die kompakteste Darstellung an.

const date = new Date('2024-10-15');

const long = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'long'
});
console.log(long.format(date)); // "October 15, 2024 Anno Domini"

const short = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'short'
});
console.log(short.format(date)); // "October 15, 2024 AD"

const narrow = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'narrow'
});
console.log(narrow.format(date)); // "October 15, 2024 A"

Der Wert long erzeugt „Anno Domini" für AD-Daten. Der Wert short erzeugt „AD". Der Wert narrow erzeugt nur „A".

Bei modernen Daten ist der Ära-Indikator redundant, da Daten in der aktuellen Ära standardmäßig angenommen werden. Die Ära wird in der Regel nur bei der Anzeige historischer Daten angegeben, bei denen die Unterscheidung relevant ist.

BC-Daten mit Ära-Indikatoren formatieren

JavaScript stellt BC-Daten mithilfe negativer Jahreszahlen dar oder durch Übergabe negativer Werte an den Konstruktor Date. Das Jahr -500 repräsentiert 501 v. Chr., das Jahr -1 repräsentiert 2 v. Chr. und das Jahr 0 repräsentiert 1 v. Chr.

const bcDate = new Date(-500, 0, 1); // January 1, 501 BC

const long = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'long'
});
console.log(long.format(bcDate)); // "January 1, 501 Before Christ"

const short = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'short'
});
console.log(short.format(bcDate)); // "January 1, 501 BC"

Der Wert long erzeugt „Before Christ" für BC-Daten. Der Wert short erzeugt „BC". Das Jahr wird als positive Zahl angezeigt, wobei der Ära-Indikator zeigt, ob es vor oder nach dem Jahr 1 liegt.

BC-Daten erfordern eine sorgfältige Handhabung, da das JavaScript-Objekt Date Einschränkungen bei der Arbeit mit weit zurückliegenden Daten aufweist. Historische Daten vor der Standardisierung des gregorianischen Kalenders im Jahr 1582 sind Näherungswerte, und Daten vor dem Jahr 1 verwenden ein Kalendersystem, das zu dieser Zeit nicht existierte.

Ären im japanischen Kalender anzeigen

Der japanische Kalender verwendet benannte Epochen (Ären), die sich mit jeder Kaiserherrschaft ändern. Die aktuelle Ära ist Reiwa, die 2019 begann. Die vorherige Ära war Heisei, die von 1989 bis 2019 dauerte.

Sie geben den japanischen Kalender an, indem Sie die Unicode-Erweiterung -u-ca-japanese im Locale-Identifier verwenden.

const date = new Date('2024-10-15');

const long = new Intl.DateTimeFormat('ja-JP-u-ca-japanese', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'long'
});
console.log(long.format(date)); // "令和6年10月15日"

const short = new Intl.DateTimeFormat('ja-JP-u-ca-japanese', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'short'
});
console.log(short.format(date)); // "令和6年10月15日"

const narrow = new Intl.DateTimeFormat('ja-JP-u-ca-japanese', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'narrow'
});
console.log(narrow.format(date)); // "R6年10月15日"

Die Werte long und short zeigen beide „令和“ (Reiwa) gefolgt vom Jahr innerhalb dieser Ära an. Das Jahr 2024 ist das Jahr 6 der Reiwa-Ära. Der Wert narrow zeigt „R“ als kompakte Abkürzung an.

Das angezeigte Jahr ist nicht das gregorianische Jahr, sondern das Jahr innerhalb der aktuellen Kaiserära. Jede Ära beginnt die Zählung wieder bei 1.

Ären im buddhistischen Kalender anzeigen

Der buddhistische Kalender zählt die Jahre ab dem Tod Buddhas im Jahr 543 v. Chr. Das buddhistische Jahr 2567 entspricht dem gregorianischen Jahr 2024.

Sie geben den buddhistischen Kalender an, indem Sie die Unicode-Erweiterung -u-ca-buddhist im Locale-Identifier verwenden.

const date = new Date('2024-10-15');

const long = new Intl.DateTimeFormat('th-TH-u-ca-buddhist', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'long'
});
console.log(long.format(date)); // "15 ตุลาคม พุทธศักราช 2567"

const short = new Intl.DateTimeFormat('th-TH-u-ca-buddhist', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'short'
});
console.log(short.format(date)); // "15 ตุลาคม พ.ศ. 2567"

Der Wert long zeigt „พุทธศักราช“ (Buddhistische Ära) als vollständigen Ären-Namen an. Der Wert short zeigt „พ.ศ.“ als abgekürzte Form an. Das Jahr 2567 stellt das buddhistische Kalenderjahr dar, das dem gregorianischen Jahr 2024 entspricht.

Der buddhistische Kalender wird häufig in Thailand, Kambodscha, Laos, Myanmar und Sri Lanka verwendet.

Wie sich die Ärenformatierung je nach Locale unterscheidet

Verschiedene Locales verwenden unterschiedliche Begriffe und Abkürzungen für dieselbe Ära. Die Ären des gregorianischen Kalenders erscheinen in der für das jeweilige Locale passenden Sprache und Stil.

const date = new Date('2024-10-15');
const options = {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'short'
};

const en = new Intl.DateTimeFormat('en-US', options);
console.log(en.format(date)); // "October 15, 2024 AD"

const fr = new Intl.DateTimeFormat('fr-FR', options);
console.log(fr.format(date)); // "15 octobre 2024 ap. J.-C."

const de = new Intl.DateTimeFormat('de-DE', options);
console.log(de.format(date)); // "15. Oktober 2024 n. Chr."

Englisch verwendet "AD" (Anno Domini). Französisch verwendet "ap. J.-C." (après Jésus-Christ, was "nach Jesus Christus" bedeutet). Deutsch verwendet "n. Chr." (nach Christus).

Die Positionierung der Ära-Angabe folgt ebenfalls den Konventionen der jeweiligen Locale. Im Englischen wird sie typischerweise nach der Jahreszahl platziert, während andere Locales sie möglicherweise anders positionieren.

const bcDate = new Date(-500, 0, 1);
const options = {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'short'
};

const en = new Intl.DateTimeFormat('en-US', options);
console.log(en.format(bcDate)); // "January 1, 501 BC"

const fr = new Intl.DateTimeFormat('fr-FR', options);
console.log(fr.format(bcDate)); // "1 janvier 501 av. J.-C."

const de = new Intl.DateTimeFormat('de-DE', options);
console.log(de.format(bcDate)); // "1. Januar 501 v. Chr."

Französisch verwendet "av. J.-C." (avant Jésus-Christ, was "vor Jesus Christus" bedeutet) für BC-Daten. Deutsch verwendet "v. Chr." (vor Christus).

Häufige Anwendungsfälle

Die Anzeige historischer Daten erfordert Ära-Angaben, um Verwechslungen zu vermeiden.

const battleOfMarathon = new Date(-490, 8, 12); // September 12, 490 BC

const formatter = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'short'
});

console.log(`Battle of Marathon: ${formatter.format(battleOfMarathon)}`);
// "Battle of Marathon: September 12, 490 BC"

Die Anzeige von Daten in kulturellen Kontexten, die unterschiedliche Kalendersysteme verwenden, erfordert eine entsprechende Kalender- und Ära-Formatierung.

const date = new Date('2024-10-15');

const japaneseFormatter = new Intl.DateTimeFormat('ja-JP-u-ca-japanese', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  era: 'long'
});

console.log(`Japanese date: ${japaneseFormatter.format(date)}`);
// "Japanese date: 令和6年10月15日"

Akademisches oder historisches Schreiben zeigt oft sowohl BC als auch AD explizit an, um Konsistenz über Zeitperioden hinweg zu gewährleisten.

const dates = [
  new Date(-2500, 0, 1), // 2501 BC
  new Date(-500, 0, 1),  // 501 BC
  new Date(500, 0, 1),   // 500 AD
  new Date(1500, 0, 1)   // 1500 AD
];

const formatter = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  era: 'short'
});

dates.forEach(date => {
  console.log(formatter.format(date));
});
// "2501 BC"
// "501 BC"
// "500 AD"
// "1500 AD"

Zusammenfassung

Die Option era in Intl.DateTimeFormat zeigt Ära-Angaben wie AD, BC oder Ära-Namen aus anderen Kalendersystemen an. Die Option akzeptiert drei Werte: long für vollständige Ära-Namen wie "Anno Domini", short für Abkürzungen wie "AD" und narrow für die kompakteste Form wie "A".

BC-Daten erfordern negative Jahreszahlen im JavaScript-Date-Konstruktor. Die formatierte Ausgabe zeigt die Jahreszahl als positive Zahl an, wobei die Ära-Angabe anzeigt, ob sie vor oder nach Jahr 1 liegt.

Andere Kalendersysteme haben ihre eigenen Ären. Der japanische Kalender verwendet benannte kaiserliche Ären wie Reiwa. Der buddhistische Kalender verwendet eine einzelne Ära, die 543 v. Chr. beginnt. Sie geben das Kalendersystem mithilfe von Unicode-Erweiterungen im Locale-Identifier an.

Verschiedene Sprachen verwenden unterschiedliche Begriffe für dieselbe Ära. Englisch verwendet "AD" und "BC", Französisch verwendet "ap. J.-C." und "av. J.-C.", und Deutsch verwendet "n. Chr." und "v. Chr.". Der Formatter wendet automatisch die entsprechenden Begriffe und Positionierungen für jede Sprache an.