Wie formatiert man Daten in verschiedenen Kalendersystemen?

Verwenden Sie die Kalenderoption von JavaScript, um Daten in islamischen, hebräischen, japanischen, chinesischen und anderen Kalendersystemen für Benutzer weltweit anzuzeigen

Einführung

Die meisten Entwickler gehen davon aus, dass Datumsangaben überall gleich funktionieren. Man erstellt ein Date-Objekt für den 15. März 2025, formatiert es und zeigt es den Benutzern an. Diese Annahme bricht jedoch zusammen, wenn Ihre Benutzer unterschiedliche Kalendersysteme verwenden.

In vielen Kulturen hat das Datum 15. März 2025 im gregorianischen Kalender eine völlig andere Darstellung. Für Benutzer, die dem islamischen Kalender folgen, fällt dieser Zeitpunkt auf den 16. Ramadan 1447. Für Benutzer des hebräischen Kalenders ist es der 14. Adar II 5785. Für japanische Benutzer in offiziellen Kontexten erscheint es als Reiwa 7, 15. März.

Kalendersysteme bestimmen, wie Gesellschaften Zeit zählen. Sie definieren, wann Jahre beginnen, wie Monate organisiert sind und wie Daten nummeriert werden. Die Intl.DateTimeFormat-API von JavaScript unterstützt über 17 verschiedene Kalendersysteme und ermöglicht es Ihnen, Daten entsprechend dem kulturellen und religiösen Kontext jedes Benutzers anzuzeigen.

Diese Lektion erklärt, was Kalendersysteme sind, warum sie existieren und wie man Datumsangaben mit verschiedenen Kalendersystemen in JavaScript formatiert.

Was Kalendersysteme sind

Ein Kalendersystem definiert die Regeln für die Organisation und Zählung der Zeit. Jedes System legt fest, wann das Jahr beginnt, wie viele Monate existieren, wie Tage nummeriert werden und welche Epoche als Ausgangspunkt für die Jahreszählung dient.

Der gregorianische Kalender, der in internationalen Kontexten weit verbreitet ist, zählt die Jahre ab der geschätzten Geburt Jesu Christi. Er verwendet 12 Monate mit Längen von 28 bis 31 Tagen, wodurch ein 365-Tage-Jahr mit Schaltjahren alle vier Jahre entsteht.

Andere Kalendersysteme verwenden unterschiedliche Strukturen und Ausgangspunkte. Der islamische Kalender verwendet 12 Mondmonate mit insgesamt 354 oder 355 Tagen pro Jahr. Der hebräische Kalender kombiniert Mondmonate mit der Ausrichtung am Sonnenjahr. Der japanische Kalender verwendet Ära-Namen, die sich mit der Regierungszeit jedes Kaisers ändern.

Diese Systeme existieren, weil verschiedene Kulturen ihre eigenen Methoden zur Zeiterfassung entwickelt haben, basierend auf religiöser Bedeutung, astronomischen Beobachtungen und historischen Ereignissen. Viele Kulturen verwenden traditionelle Kalender neben dem gregorianischen Kalender für religiöse Feiern, offizielle Dokumente und kulturelle Veranstaltungen.

Warum Kalendersysteme für Anwendungen wichtig sind

Anwendungen, die Nutzer aus verschiedenen kulturellen Hintergründen bedienen, müssen Datumsangaben in Formaten anzeigen, die diese Nutzer verstehen und erwarten. Eine Gebetszeiten-App für muslimische Nutzer sollte Daten im islamischen Kalender anzeigen. Eine App für jüdische religiöse Feiertage benötigt hebräische Kalenderdaten. Japanische Regierungsanwendungen erfordern die Formatierung nach japanischen Ären.

Die Verwendung des falschen Kalendersystems führt zu Verwirrung und kann Ihre Anwendung für die beabsichtigte Zielgruppe unbrauchbar machen. Die Anzeige islamischer Feiertage im gregorianischen Kalender zwingt Benutzer dazu, Daten manuell umzurechnen. Die Darstellung hebräischer Kalenderereignisse im gregorianischen Format verschleiert die religiöse Bedeutung dieser Daten.

Dasselbe Date-Objekt repräsentiert denselben Zeitpunkt unabhängig vom Kalendersystem. Was sich ändert, ist die Formatierung dieses Moments für die Anzeige. JavaScript ermöglicht es, jedes Datum in jedem unterstützten Kalendersystem ohne komplexe Konvertierungslogik zu formatieren.

Verwendung der Kalenderoption

Der Konstruktor Intl.DateTimeFormat akzeptiert eine calendar-Option, die festlegt, welches Kalendersystem bei der Formatierung von Datumsangaben verwendet werden soll. Übergeben Sie die Kalenderkennung als Zeichenkettenwert.

const date = new Date('2025-03-15');

const gregorianFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'gregory',
  dateStyle: 'long'
});

const islamicFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  dateStyle: 'long'
});

console.log(gregorianFormatter.format(date));
// Output: "March 15, 2025"

console.log(islamicFormatter.format(date));
// Output: "Ramadan 16, 1447 AH"

Dasselbe Date-Objekt erzeugt unterschiedlich formatierte Zeichenketten basierend auf dem Kalendersystem. Der gregorianische Kalender zeigt den 15. März 2025. Der islamische Kalender zeigt den 16. Ramadan 1447 AH.

Die Kalenderoption funktioniert unabhängig von der Locale. Sie können islamische Daten in Englisch, Arabisch, Französisch oder jeder anderen Sprache formatieren, indem Sie die Kalenderoption mit der entsprechenden Locale kombinieren.

const date = new Date('2025-03-15');

const arabicFormatter = new Intl.DateTimeFormat('ar-SA', {
  calendar: 'islamic',
  dateStyle: 'long'
});

const englishFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  dateStyle: 'long'
});

console.log(arabicFormatter.format(date));
// Output: "١٦ رمضان ١٤٤٧ هـ"

console.log(englishFormatter.format(date));
// Output: "Ramadan 16, 1447 AH"

Das Kalendersystem bestimmt, welches Datum angezeigt wird, während die Locale die Sprache und Formatierungskonventionen festlegt.

Formatierung von Datumsangaben mit dem islamischen Kalender

Der islamische Kalender ist ein Mondkalender mit 12 Monaten zu je 29 oder 30 Tagen. Ein vollständiges Mondjahr umfasst etwa 354 Tage, was 10 bis 11 Tage kürzer ist als das solare gregorianische Jahr. Dies führt dazu, dass sich islamische Datumsangaben im Laufe der Zeit im gregorianischen Kalender nach hinten verschieben.

JavaScript unterstützt mehrere Varianten des islamischen Kalenders. Die Kennung islamic verwendet eine algorithmusbasierte Berechnung. Die Kennung islamic-umalqura verwendet den Umm al-Qura-Kalender, der in Saudi-Arabien verwendet wird. Die Kennung islamic-civil verwendet eine vorhersehbare tabellarische Berechnung.

const date = new Date('2025-03-15');

const islamicFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

const umalquraFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic-umalqura',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(islamicFormatter.format(date));
// Output: "Ramadan 16, 1447 AH"

console.log(umalquraFormatter.format(date));
// Output: "Ramadan 16, 1447 AH"

Für die meisten Anwendungen, die muslimische Nutzer bedienen, funktionieren alle diese islamischen Kalendervarianten korrekt. Die Unterschiede zwischen ihnen sind gering und spielen hauptsächlich bei der Bestimmung der genauen Daten religiöser Feiertage eine Rolle.

Formatierung von Datumsangaben mit dem hebräischen Kalender

Der hebräische Kalender ist ein lunisolarischer Kalender, der für jüdische religiöse Feiertage verwendet wird. Er synchronisiert Mondmonate mit dem Sonnenjahr, indem in bestimmten Jahren ein Schaltmonat hinzugefügt wird. Dies hält die Feiertage mit den Jahreszeiten im Einklang.

const date = new Date('2025-03-15');

const hebrewFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'hebrew',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(hebrewFormatter.format(date));
// Output: "14 Adar II 5785"

Der hebräische Kalender verwendet hebräische Monatsnamen wie Nisan, Ijjar, Siwan und Tammus. In Schaltjahren enthält der Kalender Adar I und Adar II. Die Jahreszahl repräsentiert die Jahre seit der Schöpfung gemäß jüdischer Tradition.

Sie können hebräische Datumsangaben in hebräischer Sprache für Muttersprachler formatieren.

const date = new Date('2025-03-15');

const hebrewFormatter = new Intl.DateTimeFormat('he-IL', {
  calendar: 'hebrew',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(hebrewFormatter.format(date));
// Output: "י״ד באדר ב׳ ה׳תשפ״ה"

Die hebräische Sprachausgabe verwendet hebräische Buchstaben für Zahlen und hebräische Schrift für Monatsnamen.

Formatierung von Datumsangaben mit dem japanischen Kalender

Der japanische Kalender verwendet Ära-Namen basierend auf dem regierenden Kaiser. Die aktuelle Ära, Reiwa, begann am 1. Mai 2019, als Kaiser Naruhito den Thron bestieg. Die Jahre werden ab dem Beginn jeder Ära nummeriert.

const date = new Date('2025-03-15');

const japaneseFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'japanese',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(japaneseFormatter.format(date));
// Output: "March 15, 7 Reiwa"

Das Jahr erscheint als 7 Reiwa, was das siebte Jahr der Reiwa-Ära anzeigt. Dieses Format wird in offiziellen japanischen Dokumenten, Regierungsformularen und formellen Kontexten verwendet.

Die Formatierung in japanischer Sprache erzeugt das traditionelle japanische Datumsformat.

const date = new Date('2025-03-15');

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

console.log(japaneseFormatter.format(date));
// Output: "令和7年3月15日"

Die Ausgabe zeigt den Ära-Namen (令和), das Jahr (7年), den Monat (3月) und den Tag (15日) mit japanischen Schriftzeichen.

Formatierung von Datumsangaben mit dem chinesischen Kalender

Der chinesische Kalender ist ein lunisolarer Kalender, der zur Bestimmung traditioneller chinesischer Feiertage wie dem chinesischen Neujahr und dem Mittherbstfest verwendet wird. Der Kalender kombiniert Mondmonate mit Sonnenterminen.

const date = new Date('2025-03-15');

const chineseFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'chinese',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(chineseFormatter.format(date));
// Output: "Second Month 16, 2025(yi-si)"

Das chinesische Kalenderjahr enthält einen zyklischen Namen (in diesem Fall yi-si) zusammen mit dem numerischen Jahr. Die Monatsnamen verwenden numerische Bezeichnungen wie "First Month" und "Second Month".

Die chinesische Sprachformatierung zeigt das Datum mit chinesischen Schriftzeichen an.

const date = new Date('2025-03-15');

const chineseFormatter = new Intl.DateTimeFormat('zh-CN', {
  calendar: 'chinese',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(chineseFormatter.format(date));
// Output: "2025乙巳年二月十六"

Formatierung von Datumsangaben mit dem persischen Kalender

Der persische Kalender, auch Sonnen-Hidschri-Kalender genannt, ist der offizielle Kalender des Iran und Afghanistans. Er verwendet ein Sonnenjahr mit 12 Monaten, ähnlich in der Struktur wie der gregorianische Kalender, aber mit unterschiedlichen Monatslängen und einer anderen Epoche.

const date = new Date('2025-03-15');

const persianFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'persian',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(persianFormatter.format(date));
// Output: "Esfand 24, 1403 AP"

Das persische Jahr 1403 entspricht dem gregorianischen Jahr 2025. Die Abkürzung AP steht für Anno Persico.

Die persische Sprachformatierung verwendet persische Ziffern und Monatsnamen.

const date = new Date('2025-03-15');

const persianFormatter = new Intl.DateTimeFormat('fa-IR', {
  calendar: 'persian',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(persianFormatter.format(date));
// Output: "۲۴ اسفند ۱۴۰۳ ه‍.ش."

Andere unterstützte Kalendersysteme

JavaScript unterstützt zusätzliche Kalendersysteme für verschiedene kulturelle und religiöse Kontexte.

Der buddhist-Kalender addiert 543 Jahre zum gregorianischen Jahr und wird in Thailand und anderen Theravada-buddhistischen Ländern verwendet.

const date = new Date('2025-03-15');

const buddhistFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'buddhist',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(buddhistFormatter.format(date));
// Output: "March 15, 2568 BE"

Der indian-Kalender ist der offizielle zivile Kalender Indiens.

const date = new Date('2025-03-15');

const indianFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'indian',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(indianFormatter.format(date));
// Output: "Phalguna 24, 1946 Saka"

Der coptic-Kalender wird von der koptisch-orthodoxen Kirche verwendet. Der ethiopic-Kalender wird in Äthiopien verwendet.

const date = new Date('2025-03-15');

const copticFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'coptic',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

const ethiopicFormatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'ethiopic',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(copticFormatter.format(date));
// Output: "Amshir 6, 1741 ERA1"

console.log(ethiopicFormatter.format(date));
// Output: "Yekatit 6, 2017 ERA1"

Unterstützte Kalender entdecken

Die Methode Intl.supportedValuesOf() gibt ein Array mit allen Kalender-Identifikatoren zurück, die von der JavaScript-Implementierung unterstützt werden.

const calendars = Intl.supportedValuesOf('calendar');
console.log(calendars);
// Ausgabe: ["buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic",
//          "gregory", "hebrew", "indian", "islamic", "islamic-civil",
//          "islamic-tbla", "islamic-umalqura", "japanese", "persian", "roc"]

Die genaue Liste variiert je nach JavaScript-Engine und Browser-Version. Die Methode gibt Kalender immer in alphabetischer Reihenfolge zurück.

Sie können überprüfen, ob ein bestimmter Kalender unterstützt wird, bevor Sie ihn verwenden.

const calendars = Intl.supportedValuesOf('calendar');
const supportsIslamic = calendars.includes('islamic');

if (supportsIslamic) {
  const formatter = new Intl.DateTimeFormat('en-US', {
    calendar: 'islamic',
    dateStyle: 'long'
  });
  console.log(formatter.format(new Date()));
}

Diese Überprüfung verhindert Fehler in Umgebungen, die möglicherweise nicht alle Kalendersysteme unterstützen.

Kalender mit Unicode-Erweiterung spezifizieren

Sie können das Kalendersystem mithilfe eines Unicode-Erweiterungsschlüssels im Gebietsschema-Identifikator anstelle des options-Parameters angeben. Fügen Sie -u-ca- gefolgt vom Kalender-Identifikator zur Gebietsschema-Zeichenfolge hinzu.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat('en-US-u-ca-islamic', {
  dateStyle: 'long'
});

console.log(formatter.format(date));
// Ausgabe: "Ramadan 16, 1447 AH"

Die Erweiterung -u-ca-islamic weist den Formatierer an, den islamischen Kalender zu verwenden. Dies erzeugt das gleiche Ergebnis wie die Übergabe von calendar: 'islamic' im options-Objekt.

Wenn Sie den Kalender sowohl in der Gebietsschema-Zeichenfolge als auch im options-Objekt angeben, hat das options-Objekt Vorrang.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat('en-US-u-ca-islamic', {
  calendar: 'hebrew',
  dateStyle: 'long'
});

console.log(formatter.format(date));
// Ausgabe: "14 Adar II 5785"

Der hebräische Kalender aus dem options-Objekt überschreibt den islamischen Kalender aus der Gebietsschema-Zeichenfolge. Verwenden Sie den options-Parameter, wenn Sie das Kalendersystem programmatisch steuern müssen. Verwenden Sie die Unicode-Erweiterung, wenn Sie mit Gebietsschema-Identifikatoren aus Benutzereinstellungen oder Konfigurationen arbeiten.

Wie Locales die Standardkalender bestimmen

Wenn Sie keinen Kalender angeben, verwendet der Formatierer den Standardkalender für die Locale. Die meisten Locales verwenden standardmäßig den gregorianischen Kalender, aber einige Locales verwenden andere Standards.

const date = new Date('2025-03-15');

const usFormatter = new Intl.DateTimeFormat('en-US', {
  dateStyle: 'long'
});

const saFormatter = new Intl.DateTimeFormat('ar-SA', {
  dateStyle: 'long'
});

const ilFormatter = new Intl.DateTimeFormat('he-IL', {
  dateStyle: 'long'
});

console.log(usFormatter.format(date));
// Ausgabe: "March 15, 2025"

console.log(saFormatter.format(date));
// Ausgabe: "١٦ رمضان ١٤٤٧ هـ"

console.log(ilFormatter.format(date));
// Ausgabe: "15 במרץ 2025"

Die US-englische Locale verwendet standardmäßig den gregorianischen Kalender. Die saudi-arabische arabische Locale verwendet standardmäßig den islamischen Kalender. Die israelische hebräische Locale verwendet standardmäßig den gregorianischen Kalender, trotz starker hebräischer Kalendertraditionen.

Sie können herausfinden, welchen Kalender ein Formatierer verwendet, indem Sie die Methode resolvedOptions() aufrufen.

const formatter = new Intl.DateTimeFormat('ar-SA', {
  dateStyle: 'long'
});

const options = formatter.resolvedOptions();
console.log(options.calendar);
// Ausgabe: "islamic-umalqura"

Die aufgelösten Optionen zeigen, dass die Locale ar-SA standardmäßig die Kalendervariante islamic-umalqura verwendet.

Wann der Kalender explizit festgelegt werden sollte

Lassen Sie die Locale das Kalendersystem bestimmen, wenn Sie Daten zur allgemeinen Anzeige für Benutzer in ihrer nativen Locale formatieren. Benutzer aus Saudi-Arabien erwarten Daten im islamischen Kalender. Benutzer aus Japan erwarten in offiziellen Kontexten eine Formatierung nach japanischen Ären. Die Locale-Standards berücksichtigen diese Erwartungen automatisch.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat(navigator.language, {
  dateStyle: 'long'
});

console.log(formatter.format(date));
// Ausgabe variiert je nach Locale und Standardkalender des Benutzers

Legen Sie den Kalender explizit fest, wenn Sie Daten in einem bestimmten Kalendersystem anzeigen müssen, unabhängig von der Locale des Benutzers. Eine Gebetszeiten-App sollte immer Daten im islamischen Kalender anzeigen. Eine hebräische Kalender-App sollte immer hebräische Daten anzeigen.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat(navigator.language, {
  calendar: 'islamic',
  dateStyle: 'long'
});

console.log(formatter.format(date));
// Ausgabe zeigt das Datum im islamischen Kalender in der Sprache des Benutzers

Dies stellt sicher, dass das Kalendersystem dem Zweck Ihrer Anwendung entspricht und gleichzeitig die Sprachpräferenz des Benutzers respektiert.

Legen Sie den Kalender explizit fest, wenn Sie Daten in einem Kalendersystem anzeigen, das vom Standard der Locale abweicht. Sie möchten möglicherweise gregorianische Daten für hebräische Benutzer oder islamische Daten für englischsprachige Benutzer anzeigen.

const date = new Date('2025-03-15');

const formatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'hebrew',
  dateStyle: 'long'
});

console.log(formatter.format(date));
// Ausgabe: "14 Adar II 5785"

Kombination des Kalenders mit anderen Optionen

Die Kalenderoption funktioniert mit allen anderen Intl.DateTimeFormat-Optionen. Sie können sie mit dateStyle, timeStyle, Komponentenoptionen wie weekday und month sowie anderen Optionen wie timeZone kombinieren.

const date = new Date('2025-03-15T14:30:00');

const formatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  dateStyle: 'full',
  timeStyle: 'long',
  timeZone: 'America/New_York'
});

console.log(formatter.format(date));
// Output: "Saturday, Ramadan 16, 1447 AH at 2:30:00 PM EST"

Der Formatter verwendet den islamischen Kalender für das Datum und wendet gleichzeitig den vollständigen Datumsstil, den langen Zeitstil und die angegebene Zeitzone an.

Sie können die Kalenderoption auch mit einzelnen Komponentenoptionen verwenden.

const date = new Date('2025-03-15');

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

console.log(formatter.format(date));
// Output: "Saturday, March 15, 7 Reiwa"

Die Era-Option wird besonders relevant, wenn Kalender wie der japanische oder buddhistische verwendet werden, die Ära-Namen verwenden.

Formatierung von Datumsbereichen mit verschiedenen Kalendern

Die Methode formatRange() funktioniert mit der Kalenderoption, um Datumsbereiche in jedem Kalendersystem zu formatieren.

const startDate = new Date('2025-03-15');
const endDate = new Date('2025-03-25');

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

console.log(formatter.formatRange(startDate, endDate));
// Output: "Ramadan 16 – 26, 1447 AH"

Der Formatter wendet den islamischen Kalender auf beide Daten an und formatiert sie als Bereich, wobei wiederholte Informationen intelligent ausgelassen werden.

Wiederverwendung von Formattern für bessere Performance

Das Erstellen von Intl.DateTimeFormat-Instanzen beinhaltet die Verarbeitung von Locale-Daten und Kalendersysteminformationen. Wenn Sie mehrere Daten mit demselben Kalender und derselben Locale formatieren, erstellen Sie den Formatter einmal und verwenden ihn wieder.

const formatter = new Intl.DateTimeFormat('en-US', {
  calendar: 'islamic',
  dateStyle: 'long'
});

const dates = [
  new Date('2025-03-15'),
  new Date('2025-04-20'),
  new Date('2025-06-10')
];

dates.forEach(date => {
  console.log(formatter.format(date));
});
// Output:
// "Ramadan 16, 1447 AH"
// "Dhuʻl-Qiʻdah 22, 1447 AH"
// "Dhuʻl-Hijjah 15, 1447 AH"

Dieser Ansatz verbessert die Performance beim Formatieren von Datums-Arrays oder beim Anzeigen vieler Zeitstempel in Ihrer Anwendung.

Was zu beachten ist

Kalendersysteme definieren, wie Kulturen Zeit organisieren und zählen. JavaScript unterstützt über 17 verschiedene Kalendersysteme, darunter islamische, hebräische, japanische, chinesische, persische, buddhistische und koptische Kalender durch die Intl.DateTimeFormat-API.

Geben Sie ein Kalendersystem mit der Option calendar im Optionsobjekt an oder fügen Sie eine Unicode-Erweiterung zur Locale-Zeichenfolge hinzu. Die Kalenderoption bestimmt, welches Kalendersystem das Datum formatiert, während die Locale die Sprache und Formatierungskonventionen festlegt.

Lassen Sie die Locale das Standardkalendersystem bestimmen, wenn Sie Daten für den allgemeinen Gebrauch anzeigen. Legen Sie den Kalender explizit fest, wenn Ihre Anwendung ein bestimmtes Kalendersystem benötigt, unabhängig von den Locale-Präferenzen des Benutzers.

Die Kalenderoption funktioniert mit allen anderen Datumsformatierungsoptionen, einschließlich Stilen, Komponentenoptionen, Zeitzonen und Datumsbereichen. Verwenden Sie Formatter-Instanzen wieder, wenn Sie mehrere Daten formatieren, um eine bessere Leistung zu erzielen.