كيفية الحصول على تاريخ بتنسيق ISO 8601 من كائن DateTime في C#؟
مرحباً بالجميع! أنا مبتدئ في C# وواجهت مشكلة غير متوقعة. أحتاج إلى تسلسل التاريخ والوقت إلى سلسلة نصية بدقة وفقاً لمعيار ISO 8601 (مثلاً "2023-10-27T14:30:00Z" أو "2023-10-27T17:30:00+03:00"). جربت الكثير من الخيارات ولكن النتيجة دائماً تكون خاطئة.
إليك الكود الخاص بي:
DateTime now = DateTime.Now;
string dateString = now.ToString();
Console.WriteLine(dateString); // يطبع "27.10.2023 14:30:00" - ليس المطلوب!
جربت استخدام المحدد "s":
string isoString = now.ToString("s");
Console.WriteLine(isoString); // "2023-10-27T14:30:00" - أفضل، لكن لا يوجد منطقة زمنية
ولاحظت أيضاً أنه إذا استخدمت `DateTime.UtcNow`، أحصل على الوقت دون مراعاة الإزاحة المحلية. أحتاج أن يكون التاريخ دائماً مع المنطقة الزمنية الصحيحة، وبالنسبة لـ UTC — بحرف "Z" في النهاية. جربت إضافة "K" إلى التنسيق، لكن النتيجة كانت فوضى. أرجو إرشادي كيف أفعل ذلك بشكل صحيح؟ ويفضل مع أمثلة لسيناريوهات مختلفة.