C# Programming

تحويل تواريخ وأوقات قوي في C#

Spread the love

غالباً ما يتضمن العمل مع التواريخ والأوقات في C# تحويل السلاسل النصية إلى كائنات DateTime. تستكشف هذه المقالة عدة طرق لهذا التحويل، مع التركيز على الوضوح ومعالجة الأخطاء القوية.

جدول المحتويات

استخدام Convert.ToDateTime()

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


using System;
using System.Globalization;

public class DateTimeConverter
{
    public static void Main(string[] args)
    {
        string dateString = "10/26/2024";

        try
        {
            DateTime dateTime = Convert.ToDateTime(dateString);
            Console.WriteLine($"تاريخ ووقت مُحوّل: {dateTime}");
        }
        catch (FormatException)
        {
            Console.WriteLine("تنسيق التاريخ غير صحيح.");
        }
        catch (OverflowException)
        {
            Console.WriteLine("قيمة التاريخ خارج النطاق.");
        }
    }
}

استخدام DateTime.Parse()

يشابه Convert.ToDateTime()، يستخدم DateTime.Parse() الثقافة الحالية. وهو عرضة بنفس القدر لعدم اتساق التنسيقات.


using System;
using System.Globalization;

public class DateTimeConverter
{
    public static void Main(string[] args)
    {
        string dateString = "October 26, 2024";

        try
        {
            DateTime dateTime = DateTime.Parse(dateString);
            Console.WriteLine($"تاريخ ووقت مُحوّل: {dateTime}");
        }
        catch (FormatException)
        {
            Console.WriteLine("تنسيق التاريخ غير صحيح.");
        }
        catch (OverflowException)
        {
            Console.WriteLine("قيمة التاريخ خارج النطاق.");
        }
    }
}

استخدام DateTime.ParseExact()

للحصول على تحكم دقيق، يسمح لك DateTime.ParseExact() بتحديد تنسيق سلسلة الإدخال. هذا يقضي على الغموض والمشاكل المتعلقة بالثقافة.


using System;
using System.Globalization;

public class DateTimeConverter
{
    public static void Main(string[] args)
    {
        string dateString = "2024-10-26";
        string format = "yyyy-MM-dd";

        try
        {
            DateTime dateTime = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
            Console.WriteLine($"تاريخ ووقت مُحوّل: {dateTime}");
        }
        catch (FormatException)
        {
            Console.WriteLine("تنسيق التاريخ غير صحيح.");
        }
        catch (OverflowException)
        {
            Console.WriteLine("قيمة التاريخ خارج النطاق.");
        }
    }
}

أفضل الممارسات ومعالجة الأخطاء

أعطِ الأولوية دائمًا لـ DateTime.ParseExact() لموثوقيته. يضمن استخدام CultureInfo.InvariantCulture تحليلًا ثابتًا عبر الأنظمة المختلفة. معالجة شاملة للأخطاء (كتل try-catch) ضرورية لمنع تعطل التطبيق بشكل غير متوقع.

الخلاصة

يعتمد اختيار الطريقة المناسبة على احتياجاتك. في الحالات البسيطة وعندما تثق بتنسيق الإدخال، قد يكون Convert.ToDateTime() أو DateTime.Parse() كافيًا. ومع ذلك، للتحويلات القوية والموثوقة، خاصة عند التعامل مع تنسيقات إدخال متنوعة أو إعدادات ثقافية متنوعة، يُوصى بشدة باستخدام DateTime.ParseExact() مع معالجة الأخطاء المناسبة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *