मुझे तारों को डेटटाइम ऑब्जेक्ट्स में परिवर्तित करने की आवश्यकता है जो गैर-अंग्रेजी भाषाओं में हैं। मैंने डेटटाइम को अन्य भाषाओं में तारों में परिवर्तित करने के कई उदाहरण देखे हैं, लेकिन दूसरी तरफ नहीं।मैं अरबी जैसी गैर-अंग्रेजी भाषाओं के लिए डेटटाइम.TryParse() का उपयोग कैसे करूं?
यह काम करने के लिए प्रतीत नहीं होता:
CultureInfo provider = new CultureInfo("ar-AE"); // Arabic - United Arab Emirates
string sample = "الاربعاء 16 مارس 2011"; // Arabic date in Gregorian calendar
DateTime result;
DateTime expected = new DateTime(2011, 3, 16); // the expected date
bool b;
b = DateTime.TryParse(sample, provider, DateTimeStyles.None, out result);
Assert.IsTrue(b);
Assert.AreEqual(expected, result);
साथ ही, मैं तार कि अन्य कैलेंडर में हैं संभाल करने की जरूरत है। यही मैंने कोशिश की है और यह या तो काम नहीं कर रहा है।
CultureInfo provider = new CultureInfo("ar-AE"); // Arabic - United Arab Emirates
provider.DateTimeFormat.Calendar = new System.Globalization.HijriCalendar();
// Wednesday, March 16, 2011, 11 Rabi second in 1432
string sample = " 11 ربيع ثاني 1432 ";
DateTime result;
DateTime expected = new DateTime(2011, 3, 16); // ?
bool b;
b = DateTime.TryParse(sample, provider, DateTimeStyles.None, out result);
Assert.IsTrue(b);
Assert.AreEqual(expected, result);
मुझे क्या याद आ रही है?
मुझे लगता है कि अरबी यूनिकोड सामान्य (या कुछ इसी तरह) के साथ एक छोटी सी समस्या है ... मुझे लगता है कि शब्द "बुधवार" दो तरह से लिखा जा सकता है ... आप expected.ToString प्रयास करते हैं ("ddd MMMM yyyy dd ", प्रदाता) आप देखेंगे कि स्ट्रिंग एक जैसी दिखती है, लेकिन बाइनरी-बराबर नहीं है। आपका दूसरा अक्षर 0x0627 (अरबी लिटर एएलईएफ) है, टूस्ट्रिंग एक 0x0623 है (अंबैक लिफ्ट एलेफ़ हम्ज़ा के साथ)। मैं अरब के कुछ भी नहीं जानता, लेकिन मुझे उम्मीद है कि यह आपकी मदद करेगा। – xanatos