मैं उम्म अल-Qura कैलेंडर में निम्नलिखित अरबी तारीख है कि मैं एक नेट दिनांक समय वस्तु में पार्स करने के लिए करना चाहते हैं: 17 ذو الحجة, 1436मैं एक अरबी उम्म अल-कुरा तिथि स्ट्रिंग को .NET डेटटाइम ऑब्जेक्ट में कैसे पार्स कर सकता हूं?
इस तिथि के बराबर है
الأربعاء ग्रेगोरियन कैलेंडर में 30 सितंबर 2015।
मैं इस तिथि को पार्स करने के लिए निम्न "मानक" सी # कोड की कोशिश कर रहा है, लेकिन सफलता नहीं मिली:
var cultureInfo = new CultureInfo("ar-SA");
cultureInfo.DateTimeFormat.Calendar = new UmAlQuraCalendar(); // the default one anyway
var dateFormat = "dddd، dd MMMM، yyyy"; //note the ، instead of ,
var dateString = "الأربعاء، 17 ذو الحجة، 1436";
DateTime date;
DateTime.TryParseExact(dateString, dateFormat, cultureInfo.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces, out date);
कोई फर्क नहीं पड़ता कि मुझे क्या करना, TryParseExact
का परिणाम हमेशा false
है। मैं इस स्ट्रिंग को .NET में ठीक से कैसे पार्स करूं?
वैसे, अगर मैं एक DateTime
वस्तु से शुरू, मैं समस्याओं के बिना DateTime
पर ToString()
के भार के का उपयोग करके उपरोक्त सही तारीख स्ट्रिंग बना सकते हैं। मैं बस इसे स्पष्ट रूप से दूसरी तरफ नहीं कर सकता।
मुझे लगता है कि आप सुरक्षित रूप से 'CultureInfo.GetCultureInfoByIetfLanguageTag (" ए आर-SA ") द्वारा पहले दो लाइनों की जगह ले सकता;' लेकिन यह इस मुद्दे को ठीक प्रतीत नहीं होता है। – Gimly
@Gimly: यह सही है, अगर मैं कन्स्ट्रक्टर के बजाय आपकी प्रस्तावित विधि का उपयोग करता हूं तो कुछ भी नहीं बदलेगा। –
क्या आप ToString() परिणाम पोस्ट कर सकते हैं? क्या आप ToString() के परिणाम को डेटटाइम() पर वापस पा सकते हैं? यदि आप ToString() परिणामों को पार्स कर सकते हैं तो दो स्ट्रिंग समान नहीं हो सकती हैं। मैं यह सुनिश्चित करने के लिए कि वे समान हैं, दो तारों के चरित्र द्वारा वर्ण की तुलना करना चाहते हैं। – jdweng