كيف تقوم بتنسيق التواريخ في أنظمة التقويم المختلفة؟

استخدم خيار التقويم في JavaScript لعرض التواريخ في التقويمات الإسلامية والعبرية واليابانية والصينية وأنظمة التقويم الأخرى للمستخدمين حول العالم

مقدمة

يفترض معظم المطورين أن التواريخ تعمل بنفس الطريقة في كل مكان. تقوم بإنشاء كائن Date لتاريخ 15 مارس 2025، وتنسيقه، وعرضه للمستخدمين. ومع ذلك، ينهار هذا الافتراض عندما يتبع المستخدمون أنظمة تقويم مختلفة.

في العديد من الثقافات، يكون لتاريخ 15 مارس 2025 في التقويم الميلادي تمثيل مختلف تمامًا. بالنسبة للمستخدمين الذين يتبعون التقويم الإسلامي، تحدث نفس اللحظة في 16 رمضان 1447. بالنسبة لمستخدمي التقويم العبري، يصادف 14 أدار الثاني 5785. بالنسبة للمستخدمين اليابانيين في السياقات الرسمية، يظهر كـ 15 مارس، ريوا 7.

تحدد أنظمة التقويم كيفية حساب المجتمعات للوقت. فهي تحدد متى تبدأ السنوات، وكيف يتم تنظيم الأشهر، وكيف يتم ترقيم التواريخ. تدعم واجهة برمجة التطبيقات Intl.DateTimeFormat في JavaScript أكثر من 17 نظام تقويم مختلف، مما يسمح لك بعرض التواريخ وفقًا للسياق الثقافي والديني لكل مستخدم.

يشرح هذا الدرس ما هي أنظمة التقويم، ولماذا توجد، وكيفية تنسيق التواريخ باستخدام أنظمة التقويم المختلفة في JavaScript.

ما هي أنظمة التقويم

يحدد نظام التقويم القواعد الخاصة بتنظيم وحساب الوقت. يحدد كل نظام متى تبدأ السنة، وكم عدد الأشهر الموجودة، وكيف يتم ترقيم الأيام، وما هي الحقبة التي تعمل كنقطة البداية لترقيم السنوات.

يحسب التقويم الميلادي، المستخدم على نطاق واسع في السياقات الدولية، السنوات من الميلاد المقدر ليسوع المسيح. يستخدم 12 شهرًا بأطوال تتراوح من 28 إلى 31 يومًا، مما يخلق سنة من 365 يومًا مع سنوات كبيسة كل أربع سنوات.

تستخدم الأنظمة التقويمية الأخرى هياكل ونقاط بداية مختلفة. يستخدم التقويم الإسلامي 12 شهراً قمرياً يبلغ مجموعها 354 أو 355 يوماً في السنة. يجمع التقويم العبري بين الأشهر القمرية والمواءمة مع السنة الشمسية. يستخدم التقويم الياباني أسماء حقب تتغير مع حكم كل إمبراطور.

توجد هذه الأنظمة لأن الثقافات المختلفة طورت طرقها الخاصة لتتبع الوقت بناءً على الأهمية الدينية والملاحظات الفلكية والأحداث التاريخية. تواصل العديد من الثقافات استخدام التقاويم التقليدية جنباً إلى جنب مع التقويم الميلادي للشعائر الدينية والوثائق الرسمية والفعاليات الثقافية.

لماذا تهم أنظمة التقويم للتطبيقات

تحتاج التطبيقات التي تخدم مستخدمين من خلفيات ثقافية مختلفة إلى عرض التواريخ بتنسيقات يفهمها هؤلاء المستخدمون ويتوقعونها. يجب أن يعرض تطبيق أوقات الصلاة للمستخدمين المسلمين التواريخ بالتقويم الإسلامي. يحتاج تطبيق الشعائر الدينية اليهودية إلى تواريخ التقويم العبري. تتطلب التطبيقات الحكومية اليابانية تنسيق الحقبة اليابانية.

يؤدي استخدام نظام التقويم الخاطئ إلى حدوث ارتباك ويمكن أن يجعل تطبيقك غير قابل للاستخدام للجمهور المستهدف. يجبر عرض تواريخ الأعياد الإسلامية بالتقويم الميلادي المستخدمين على تحويل التواريخ يدوياً. يؤدي عرض أحداث التقويم العبري بالتنسيق الميلادي إلى إخفاء الأهمية الدينية لتلك التواريخ.

يمثل كائن Date نفسه نفس اللحظة الزمنية بغض النظر عن نظام التقويم. ما يتغير هو كيفية تنسيق تلك اللحظة للعرض. تتيح لك JavaScript تنسيق أي تاريخ في أي نظام تقويم مدعوم دون منطق تحويل معقد.

استخدام خيار calendar

يقبل منشئ Intl.DateTimeFormat خيار calendar الذي يحدد نظام التقويم المراد استخدامه عند تنسيق التواريخ. قم بتمرير معرف التقويم كقيمة نصية.

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"

ينتج كائن التاريخ نفسه سلاسل نصية منسقة مختلفة بناءً على نظام التقويم. يعرض التقويم الميلادي 15 مارس 2025. يعرض التقويم الهجري 16 رمضان 1447 هـ.

يعمل خيار التقويم بشكل مستقل عن اللغة المحلية. يمكنك تنسيق التواريخ الهجرية بالإنجليزية أو العربية أو الفرنسية أو أي لغة أخرى من خلال دمج خيار التقويم مع اللغة المحلية المناسبة.

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"

يحدد نظام التقويم التاريخ المراد عرضه، بينما تحدد اللغة المحلية اللغة واصطلاحات التنسيق.

تنسيق التواريخ بالتقويم الهجري

التقويم الهجري هو تقويم قمري يحتوي على 12 شهراً من 29 أو 30 يوماً. السنة القمرية الكاملة تبلغ حوالي 354 يوماً، وهي أقصر بـ 10 إلى 11 يوماً من السنة الميلادية الشمسية. يتسبب هذا في تراجع التواريخ الهجرية عبر التقويم الميلادي مع مرور الوقت.

يدعم JavaScript متغيرات متعددة من التقويم الهجري. يستخدم المعرّف islamic حساباً قائماً على الخوارزمية. يستخدم المعرّف islamic-umalqura تقويم أم القرى المستخدم في المملكة العربية السعودية. يستخدم المعرّف islamic-civil حساباً جدولياً يمكن التنبؤ به.

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"

بالنسبة لمعظم التطبيقات التي تخدم المستخدمين المسلمين، تعمل أي من متغيرات التقويم الهجري هذه بشكل صحيح. الاختلافات بينها صغيرة وتهم بشكل أساسي لتحديد التواريخ الدقيقة للشعائر الدينية.

تنسيق التواريخ بالتقويم العبري

التقويم العبري هو تقويم قمري شمسي يُستخدم للشعائر الدينية اليهودية. يقوم بمزامنة الأشهر القمرية مع السنة الشمسية من خلال إضافة شهر كبيس في سنوات معينة. يحافظ هذا على توافق الأعياد مع الفصول.

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"

يستخدم التقويم العبري أسماء الأشهر العبرية مثل نيسان وإيار وسيفان وتموز. في السنوات الكبيسة، يتضمن التقويم أدار الأول وأدار الثاني. يمثل عدد السنوات السنوات منذ الخلق وفقاً للتقاليد اليهودية.

يمكنك تنسيق التواريخ العبرية باللغة العبرية للمتحدثين الأصليين.

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: "י״ד באדר ב׳ ה׳תשפ״ה"

يستخدم الإخراج باللغة العبرية الحروف العبرية للأرقام والكتابة العبرية لأسماء الأشهر.

تنسيق التواريخ بالتقويم الياباني

يستخدم التقويم الياباني أسماء الحقبات بناءً على الإمبراطور الحاكم. بدأت الحقبة الحالية، ريوا، في 1 مايو 2019، عندما اعتلى الإمبراطور ناروهيتو العرش. يتم ترقيم السنوات من بداية كل حقبة.

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"

تظهر السنة كـ 7 ريوا، مما يشير إلى السنة السابعة من حقبة ريوا. يُستخدم هذا التنسيق في الوثائق اليابانية الرسمية والنماذج الحكومية والسياقات الرسمية.

ينتج التنسيق باللغة اليابانية تنسيق التاريخ الياباني التقليدي.

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日"

يعرض الإخراج اسم الحقبة (令和)، والسنة (7年)، والشهر (3月)، واليوم (15日) باستخدام الأحرف اليابانية.

تنسيق التواريخ بالتقويم الصيني

التقويم الصيني هو تقويم قمري شمسي يُستخدم لتحديد الأعياد الصينية التقليدية مثل رأس السنة الصينية ومهرجان منتصف الخريف. يجمع التقويم بين الأشهر القمرية والمصطلحات الشمسية.

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)"

تتضمن سنة التقويم الصيني اسماً دورياً (يي-سي في هذه الحالة) إلى جانب السنة الرقمية. تستخدم أسماء الأشهر تسميات رقمية مثل "الشهر الأول" و"الشهر الثاني".

يعرض التنسيق باللغة الصينية التاريخ باستخدام الأحرف الصينية.

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乙巳年二月十六"

تنسيق التواريخ بالتقويم الفارسي

التقويم الفارسي، المعروف أيضاً بالتقويم الهجري الشمسي، هو التقويم الرسمي في إيران وأفغانستان. يستخدم سنة شمسية مكونة من 12 شهراً، مشابهة في البنية للتقويم الميلادي ولكن بأطوال شهور مختلفة ونقطة بداية مختلفة.

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"

السنة الفارسية 1403 تقابل السنة الميلادية 2025. الاختصار AP يرمز إلى Anno Persico.

تنسيق اللغة الفارسية يستخدم الأرقام الفارسية وأسماء الأشهر الفارسية.

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: "۲۴ اسفند ۱۴۰۳ ه‍.ش."

أنظمة التقويم الأخرى المدعومة

يدعم JavaScript أنظمة تقويم إضافية لسياقات ثقافية ودينية متنوعة.

تقويم buddhist يضيف 543 سنة إلى السنة الميلادية، ويُستخدم في تايلاند ودول ثيرافادا البوذية الأخرى.

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"

تقويم indian هو التقويم المدني الرسمي للهند.

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"

تقويم coptic يُستخدم من قبل الكنيسة القبطية الأرثوذكسية. تقويم ethiopic يُستخدم في إثيوبيا.

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"

اكتشاف التقويمات المدعومة

تُرجع دالة Intl.supportedValuesOf() مصفوفة بجميع معرّفات التقويم المدعومة من قبل تطبيق JavaScript.

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"]

تختلف القائمة الدقيقة حسب محرك JavaScript وإصدار المتصفح. تُرجع الدالة التقويمات دائماً بترتيب أبجدي.

يمكنك التحقق من دعم تقويم معين قبل استخدامه.

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()));
}

يمنع هذا الفحص حدوث أخطاء في البيئات التي قد لا تدعم جميع أنظمة التقويم.

تحديد التقويم باستخدام امتداد Unicode

يمكنك تحديد نظام التقويم باستخدام مفتاح امتداد Unicode في معرّف اللغة بدلاً من استخدام معامل الخيارات. أضف -u-ca- متبوعاً بمعرّف التقويم إلى سلسلة اللغة.

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"

يخبر الامتداد -u-ca-islamic المنسق باستخدام التقويم الهجري. ينتج هذا نفس النتيجة التي يتم الحصول عليها عند تمرير calendar: 'islamic' في كائن الخيارات.

عند تحديد التقويم في كل من سلسلة اللغة وكائن الخيارات، يكون لكائن الخيارات الأولوية.

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"

يتجاوز التقويم العبري من كائن الخيارات التقويم الهجري من سلسلة اللغة. استخدم معامل الخيارات عندما تحتاج إلى التحكم برمجياً في نظام التقويم. استخدم امتداد Unicode عند العمل مع معرفات اللغة من تفضيلات المستخدم أو الإعدادات.

كيف تحدد اللغات التقويمات الافتراضية

عندما لا تحدد تقويماً، يستخدم المنسق التقويم الافتراضي للغة. تستخدم معظم اللغات التقويم الميلادي افتراضياً، لكن بعض اللغات تستخدم افتراضيات مختلفة.

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"

تستخدم اللغة الإنجليزية الأمريكية التقويم الميلادي افتراضياً. تستخدم اللغة العربية السعودية التقويم الهجري افتراضياً. تستخدم اللغة العبرية الإسرائيلية التقويم الميلادي افتراضياً على الرغم من التقاليد القوية للتقويم العبري.

يمكنك اكتشاف التقويم الذي يستخدمه المنسق عن طريق استدعاء الدالة resolvedOptions().

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

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

تظهر الخيارات المحللة أن اللغة ar-SA تستخدم افتراضياً متغير التقويم islamic-umalqura.

متى يجب تعيين التقويم بشكل صريح

اسمح للغة بتحديد نظام التقويم عند تنسيق التواريخ للعرض العام للمستخدمين بلغتهم الأصلية. يتوقع المستخدمون من المملكة العربية السعودية تواريخ التقويم الهجري. يتوقع المستخدمون من اليابان تنسيق الحقبة اليابانية في السياقات الرسمية. تتعامل الإعدادات الافتراضية للغة مع هذه التوقعات تلقائياً.

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

حدد التقويم بشكل صريح عندما تحتاج إلى عرض التواريخ في نظام تقويم معين بغض النظر عن لغة المستخدم. يجب أن يعرض تطبيق أوقات الصلاة دائمًا تواريخ التقويم الإسلامي. يجب أن يعرض تطبيق التقويم العبري دائمًا التواريخ العبرية.

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

يضمن هذا تطابق نظام التقويم مع غرض تطبيقك مع الاستمرار في احترام تفضيل لغة المستخدم.

حدد التقويم بشكل صريح عند عرض التواريخ في نظام تقويم مختلف عن النظام الافتراضي للغة. قد ترغب في عرض التواريخ الميلادية للمستخدمين العبريين أو التواريخ الإسلامية للمتحدثين بالإنجليزية.

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"

دمج التقويم مع خيارات أخرى

يعمل خيار التقويم مع جميع خيارات Intl.DateTimeFormat الأخرى. يمكنك دمجه مع dateStyle، timeStyle، خيارات المكونات مثل weekday و month، وخيارات أخرى مثل timeZone.

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"

يستخدم المنسق التقويم الإسلامي للتاريخ مع تطبيق نمط التاريخ الكامل ونمط الوقت الطويل والمنطقة الزمنية المحددة.

يمكنك أيضًا استخدام خيار التقويم مع خيارات المكونات الفردية.

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"

يصبح خيار الحقبة ذا صلة خاصة عند استخدام تقاويم مثل التقويم الياباني أو البوذي التي تستخدم أسماء الحقب.

تنسيق نطاقات التواريخ بتقاويم مختلفة

تعمل طريقة formatRange() مع خيار التقويم لتنسيق نطاقات التواريخ في أي نظام تقويم.

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"

يطبق المنسق التقويم الإسلامي على كلا التاريخين وينسقهما كنطاق، مع حذف المعلومات المكررة بذكاء.

إعادة استخدام المنسقات لتحسين الأداء

يتضمن إنشاء نسخ Intl.DateTimeFormat معالجة بيانات اللغة ومعلومات نظام التقويم. عند تنسيق تواريخ متعددة بنفس التقويم واللغة، قم بإنشاء المنسق مرة واحدة وأعد استخدامه.

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"

يحسّن هذا النهج الأداء عند تنسيق مصفوفات التواريخ أو عرض العديد من الطوابع الزمنية في تطبيقك.

ما يجب تذكره

تحدد الأنظمة التقويمية كيفية تنظيم الثقافات للوقت وحسابه. يدعم JavaScript أكثر من 17 نظاماً تقويمياً مختلفاً بما في ذلك التقاويم الإسلامية والعبرية واليابانية والصينية والفارسية والبوذية والقبطية من خلال واجهة برمجة التطبيقات Intl.DateTimeFormat.

حدد نظاماً تقويمياً باستخدام خيار calendar في كائن الخيارات أو بإضافة امتداد Unicode إلى سلسلة اللغة. يحدد خيار التقويم النظام التقويمي الذي ينسق التاريخ، بينما تحدد اللغة اللغة واصطلاحات التنسيق.

اسمح للغة بتحديد التقويم الافتراضي عند عرض التواريخ للاستخدام العام. اضبط التقويم بشكل صريح عندما يتطلب تطبيقك نظاماً تقويمياً محدداً بغض النظر عن تفضيلات لغة المستخدم.

يعمل خيار التقويم مع جميع خيارات تنسيق التاريخ الأخرى بما في ذلك الأنماط وخيارات المكونات والمناطق الزمنية ونطاقات التواريخ. أعد استخدام مثيلات المنسق عند تنسيق تواريخ متعددة للحصول على أداء أفضل.