تنسيق التواريخ
التنسيقات المخصصة والقياسية
تنسيق التواريخ درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.
لماذا ننسّق التواريخ
تُطبع قيمة DateTime الخام باستخدام الثقافة الافتراضية لجهازكم، وقد لا يكون ذلك بالشكل الذي تريدونه.
يتيح لكم التنسيق التحكم بدقة في طريقة ظهور التاريخ: 2024-03-05 أو 05/03/2024 أو Tuesday, March 5. وتوفّر C# سلاسل تنسيق قياسية ومخصصة.
ToString باستخدام نمط
الأداة الأكثر مرونة هي ToString مع سلسلة تنسيق مخصصة. ويمثّل كل حرف جزءاً من التاريخ.
على سبيل المثال، تنتج "yyyy-MM-dd" تنسيقاً للسنة-الشهر-اليوم، وهو يتيح ترتيب التواريخ بسهولة ويسهل قراءته.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToString("yyyy-MM-dd"));
}
}أحرف السنة والشهر واليوم
تُراعي أحرف التنسيق حالة الأحرف. يمثّل yyyy سنة مكوّنة من أربعة أرقام، ويمثّل MM شهراً مكوّناً من رقمين، ويمثّل dd يوماً مكوّناً من رقمين.
استخدموا الحرف الكبير M للشهر؛ أما الحرف الصغير m فيعني الدقائق. ويُعد الخلط بينهما خطأً شائعاً لدى المبتدئين.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToString("dd/MM/yyyy"));
}
}الساعات والدقائق والثواني
بالنسبة إلى جزء الوقت، يمثّل HH نظام 24 ساعة، وتمثّل mm الدقائق، وتمثّل ss الثواني.
يستخدم hh المكتوب بأحرف صغيرة نظام 12 ساعة، ويقترن مع tt لعرض AM أو PM.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.ToString("HH:mm:ss"));
}
}نظام 12 ساعة مع AM/PM
لعرض الوقت بصيغة ودية وفق نظام 12 ساعة، ادمجوا hh:mm مع tt. ويطبع محدد التنسيق tt القيمة AM أو PM.
لذلك تتحول 14:30 إلى 02:30 PM، وهو ما يجده كثير من القراء أسهل من قيمة بنظام 24 ساعة.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.ToString("hh:mm tt"));
}
}أسماء الشهور والأيام
يمكنكم كتابة الأسماء بدلاً من الأرقام. يعرض MMMM اسم الشهر كاملاً، بينما يعرض MMM اسماً مختصراً.
وبالنسبة إلى أيام الأسبوع، يعرض dddd اسم اليوم كاملاً، بينما يعرض ddd الاختصار.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToString("dddd, MMMM dd"));
}
}محددات التنسيق القياسية
إلى جانب الأنماط المخصصة، توفّر C# رموزاً قياسية قصيرة. يمثّل "d" تاريخاً قصيراً، ويمثّل "D" تاريخاً طويلاً، ويمثّل "t" وقتاً قصيراً، ويمثّل "T" وقتاً طويلاً.
تتبع هذه الرموز الثقافة الحالية، لذلك قد يختلف شكلها الدقيق حسب المنطقة.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.ToString("D"));
}
}الدوال المساعدة المختصرة والكاملة
توجد أيضًا دوال مساعدة. تعرض ToShortDateString وToShortTimeString مخرجات موجزة، بينما تعرض ToLongDateString التفاصيل كاملة.
هذه الدوال سريعة، لكن للحصول على تحكم كامل يُفضّل استخدام سلسلة تنسيق صريحة.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToShortDateString());
}
}التنسيق داخل الاستيفاء
يمكنك وضع تنسيق بعد نقطتين داخل سلسلة نصية مستوفاة. فعند كتابة {d:yyyy-MM-dd}، تُنسَّق القيمة في موضع ظهورها مباشرةً.
يساعد ذلك في إبقاء التعليمات البرمجية قصيرة وسهلة القراءة عند إنشاء الرسائل.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine($"Date: {d:yyyy-MM-dd}");
}
}مخرجات مستقلة عن الثقافة
بالنسبة إلى البيانات التي تخزنها أو ترسلها بين الأنظمة، استخدم التنسيق مع CultureInfo.InvariantCulture حتى لا تعتمد النتيجة مطلقًا على الإعدادات الإقليمية للمستخدم.
يمنع ذلك المفاجآت التي قد تجعل التعليمات البرمجية نفسها تطبع نتائج مختلفة على جهاز آخر.
using System;
using System.Globalization;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
}
}تنسيق Round-Trip
ينتج التنسيق القياسي "o" (round-trip) سلسلة بتنسيق ISO 8601 تحافظ على كل التفاصيل، بما في ذلك أجزاء الثانية.
وهو الخيار الأكثر أمانًا عندما يلزم تحليل التاريخ مجددًا لاحقًا من دون فقدان الدقة.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.ToString("o"));
}
}اختبار سريع
تريد تضمين شهر مكوّن من رقمين داخل سلسلة تنسيق مخصصة. أي محدد تنسيق هو الصحيح؟
مراجعة
يمكنك تنسيق التواريخ باستخدام ToString وأنماط مخصصة مثل yyyy وMM وdd وHH وmm.
تتبع الرموز القياسية مثل "d" و"D" الثقافة، بينما تحافظ InvariantCulture وتنسيق "o" من نوع round-trip على ثبات المخرجات عبر الأنظمة.
الأسئلة الشائعة
هل درس «تنسيق التواريخ» مجاني؟
نعم — نص درس «تنسيق التواريخ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.
ماذا ستتعلم في «تنسيق التواريخ»؟
التنسيقات المخصصة والقياسية تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تنسيق التواريخ»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء DateTimes
- تنسيق التواريخ
- TimeSpan والمدد
- الحساب على التواريخ