Wie formatiert man Daten in verschiedenen Kalendersystemen?

Verwenden Sie die calendar-Option von JavaScript, um Daten im islamischen, hebräischen, japanischen, chinesischen und anderen Kalendersystemen für Benutzer weltweit anzuzeigen

Einführung

Die meisten Entwickler gehen davon aus, dass Daten überall gleich funktionieren. Sie erstellen ein Date-Objekt für den 15. März 2025, formatieren es und zeigen es den Benutzern an. Diese Annahme bricht jedoch zusammen, wenn Ihre Benutzer unterschiedlichen Kalendersystemen folgen.

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 derselbe Zeitpunkt auf den 16. Ramadan 1447. Für Benutzer des hebräischen Kalenders fällt er auf den 14. Adar II 5785. Für japanische Benutzer in offiziellen Kontexten erscheint er als 15. März Reiwa 7.

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 Daten mit verschiedenen Kalendersystemen in JavaScript formatiert.

Was Kalendersysteme sind

Ein Kalendersystem definiert die Regeln für die Organisation und Zählung von 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 Jahre ab der geschätzten Geburt Jesu Christi. Er verwendet 12 Monate mit Längen zwischen 28 und 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 weiterhin 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 unterschiedlichen kulturellen Hintergründen bedienen, müssen Daten 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 Feiern benötigt Daten im hebräischen Kalender. Japanische regierungsbezogene Anwendungen erfordern die japanische Ära-Formatierung.

Die Verwendung des falschen Kalendersystems führt zu Verwirrung und kann Ihre Anwendung für die vorgesehene Zielgruppe unbrauchbar machen. Die Anzeige islamischer Feiertage im gregorianischen Kalender zwingt Nutzer zur manuellen Datumskonvertierung. 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 Art und Weise, wie Sie diesen Zeitpunkt zur Anzeige formatieren. JavaScript ermöglicht es Ihnen, jedes Datum in jedem unterstützten Kalendersystem ohne komplexe Konvertierungslogik zu formatieren.

Verwendung der calendar-Option

Der Intl.DateTimeFormat-Konstruktor akzeptiert eine calendar-Option, die angibt, welches Kalendersystem beim Formatieren von Daten verwendet werden soll. Übergeben Sie die Kalenderkennung als String-Wert.

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 unterschiedliche formatierte Strings basierend auf dem Kalendersystem. Der gregorianische Kalender zeigt den 15. März 2025. Der islamische Kalender zeigt den 16. Ramadan 1447 n. H.

Die calendar-Option funktioniert unabhängig vom Locale. Sie können islamische Daten auf Englisch, Arabisch, Französisch oder in jeder anderen Sprache formatieren, indem Sie die calendar-Option mit dem 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 das Locale die Sprache und Formatierungskonventionen bestimmt.

Formatierung von Daten 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 Daten im Laufe der Zeit rückwärts durch den gregorianischen Kalender verschieben.

JavaScript unterstützt mehrere islamische Kalendervarianten. Der Bezeichner islamic verwendet eine algorithmusbasierte Berechnung. Der Bezeichner islamic-umalqura verwendet den in Saudi-Arabien verwendeten Umm al-Qura-Kalender. Der Bezeichner islamic-civil verwendet eine vorhersagbare 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 Benutzer bedienen, funktioniert jede dieser islamischen Kalendervarianten korrekt. Die Unterschiede zwischen ihnen sind gering und spielen hauptsächlich bei der Bestimmung exakter Daten religiöser Feiern eine Rolle.

Formatierung von Daten mit dem hebräischen Kalender

Der hebräische Kalender ist ein lunisolarer Kalender, der für jüdische religiöse Feiern verwendet wird. Er synchronisiert Mondmonate mit dem Sonnenjahr, indem in bestimmten Jahren ein Schaltmonat hinzugefügt wird. Dies hält 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, Iyar, Sivan und Tammuz. In Schaltjahren enthält der Kalender Adar I und Adar II. Die Jahreszählung repräsentiert Jahre seit der Schöpfung gemäß jüdischer Tradition.

Sie können hebräische Daten 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äischsprachige Ausgabe verwendet hebräische Buchstaben für Zahlen und hebräische Schrift für Monatsnamen.

Formatierung von Daten 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. Jahre werden ab Beginn jeder Ära gezählt.

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 und gibt das siebte Jahr der Reiwa-Ära an. 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日) unter Verwendung japanischer Zeichen.

Formatierung von Daten 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 Solartermen.

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 der numerischen Jahreszahl. Die Monatsnamen verwenden numerische Bezeichnungen wie "erster Monat" und "zweiter Monat".

Die chinesischsprachige Formatierung zeigt das Datum unter Verwendung chinesischer Zeichen 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 Daten mit dem persischen Kalender

Der persische Kalender, auch Solar-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, jedoch 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: "۲۴ اسفند ۱۴۰۳ ه‍.ش."

Weitere 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 Zivilkalender 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 ermitteln

Die Intl.supportedValuesOf()-Methode gibt ein Array aller von der JavaScript-Implementierung unterstützten Kalender-Identifikatoren zurück.

const calendars = Intl.supportedValuesOf('calendar');
console.log(calendars);
// Output: ["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 prü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 Prüfung verhindert Fehler in Umgebungen, die möglicherweise nicht alle Kalendersysteme unterstützen.

Kalender mit Unicode-Erweiterung angeben

Sie können das Kalendersystem mithilfe eines Unicode-Erweiterungsschlüssels im Locale-Identifikator angeben, anstatt den Options-Parameter zu verwenden. Fügen Sie -u-ca- gefolgt vom Kalender-Identifikator zum Locale-String 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));
// Output: "Ramadan 16, 1447 AH"

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

Wenn Sie den Kalender sowohl im Locale-String 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));
// Output: "14 Adar II 5785"

Der hebräische Kalender aus dem Options-Objekt überschreibt den islamischen Kalender aus dem Locale-String. Verwenden Sie den Options-Parameter, wenn Sie das Kalendersystem programmatisch steuern müssen. Verwenden Sie die Unicode-Erweiterung, wenn Sie mit Locale-Identifikatoren aus Benutzerpräferenzen oder Konfigurationen arbeiten.

Wie Locales Standard-Kalender bestimmen

Wenn Sie keinen Kalender angeben, verwendet der Formatter den Standard-Kalender 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));
// Output: "March 15, 2025"

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

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

Die US-amerikanische 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 Formatter verwendet, indem Sie die Methode resolvedOptions() aufrufen.

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

const options = formatter.resolvedOptions();
console.log(options.calendar);
// Output: "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 für die allgemeine Anzeige an 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 behandeln diese Erwartungen automatisch.

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

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

console.log(formatter.format(date));
// Output varies by user's locale and default calendar

Legen Sie den Kalender explizit fest, wenn Sie Daten in einem bestimmten Kalendersystem anzeigen müssen, unabhängig vom Gebietsschema des Benutzers. Eine Gebetszeiten-App sollte immer islamische Kalenderdaten 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));
// Output shows Islamic calendar date in user's language

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

Legen Sie den Kalender explizit fest, wenn Sie Daten in einem Kalendersystem anzeigen, das vom Standard des Gebietsschemas 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));
// Output: "14 Adar II 5785"

Kombination von Kalender 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 Ära-Option wird besonders relevant, wenn Kalender wie der japanische oder buddhistische Kalender verwendet werden, die Äranamen verwenden.

Formatierung von Datumsbereichen mit verschiedenen Kalendern

Die formatRange()-Methode 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 weggelassen werden.

Wiederverwendung von Formattern für bessere Performance

Das Erstellen von Intl.DateTimeFormat-Instanzen umfasst die Verarbeitung von Gebietsschemadaten und Kalendersysteminformationen. Wenn Sie mehrere Daten mit demselben Kalender und Gebietsschema formatieren, erstellen Sie den Formatter einmal und verwenden Sie 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 Sie sich merken sollten

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 über die Intl.DateTimeFormat-API.

Geben Sie ein Kalendersystem mithilfe der calendar-Option im Options-Objekt an oder fügen Sie eine Unicode-Erweiterung zum Locale-String hinzu. Die Calendar-Option bestimmt, welches Kalendersystem das Datum formatiert, während das Locale die Sprache und Formatierungskonventionen bestimmt.

Lassen Sie das Locale den Standardkalender bestimmen, wenn Sie Daten für die allgemeine Verwendung anzeigen. Setzen Sie den Kalender explizit, wenn Ihre Anwendung ein bestimmtes Kalendersystem unabhängig von den Locale-Präferenzen des Benutzers erfordert.

Die Calendar-Option funktioniert mit allen anderen Datumsformatierungsoptionen, einschließlich Stilen, Komponentenoptionen, Zeitzonen und Datumsbereichen. Verwenden Sie Formatter-Instanzen beim Formatieren mehrerer Daten wieder, um eine bessere Performance zu erzielen.