لا يمكن تحويل السلسلة إلى وقت التاريخ


مرحبًا
أريد تحويل السلسلة str إلى DateTime,str=”2024/22/03″
تنسيق النظام لجهاز الكمبيوتر الخاص بي هو m/d/yyyy
أريد Date_1 بالتنسيق yyyy/MM/dd
Date_1 = Convert.ToDateTime(str, “yyyy/MM/dd”);

ما حاولت:

str = "2024/12/03"; 
Date_1 = Convert.ToDateTime(str, "yyyy/MM/dd");

الحل 1

طريقة DateTime.ParseExact (النظام) | مايكروسوفت تعلم[^] سوف تفعل ما تريد:

ج#
string str = "2024/22/03";

// Parse the string into a DateTime object with the specified format
DateTime dateTime = DateTime.ParseExact(str, "yyyy/dd/MM", null);

// Format the DateTime object into the desired format
string formattedDate = dateTime.ToString("yyyy/MM/dd");

Console.WriteLine("Original string: " + str);
Console.WriteLine("Formatted date: " + formattedDate);

والإخراج:

Original string: 2024/22/03
Formatted date: 2024/03/22

الحل 2

إضافة إلى ما قاله جرايم، الحل الأفضل هو الاستخدام طريقة DateTime.TryParseExact (النظام) | مايكروسوفت تعلم[^] بدلاً من ذلك – بهذه الطريقة يمكنك اكتشاف الأخطاء بدلاً من تعطل تطبيقك إذا لم تكن البيانات بالتنسيق الذي تتوقعه لسبب ما:

ج#
DateTime dt;
if (!DateTime.TryParseExact(str, "yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
   {
   ... report or log the problem
   return;
   }
... dt contains a valid date set at midnight here

コメント

タイトルとURLをコピーしました