मुझे AM / PM designator सहित कस्टम दिनांकटाइम प्रारूप प्राप्त करना है, लेकिन मैं "AM" या "PM" चाहता हूं "लोअरकेस बिना को बाकी सभी अक्षरों को लोअरकेस बनाते हैं।
क्या यह एक प्रारूप का उपयोग कर संभव है और एक regex का उपयोग किए बिना?
यहाँ क्या है मैं अभी मिल गया है:
item.PostedOn.ToString ( "dddd, MMMM d, yyyy एक \\ वें: mmtt")
एक उत्पादन का उदाहरण अभी शनिवार, 31 जनवरी, 1:34 पूर्वाह्न पर होगा
मैं व्यक्तिगत रूप से दो भागों में स्वरूपित होगा: गैर AM / pM हिस्सा है, और ToLower साथ AM / pM हिस्सा:
स्ट्रिंग स्वरूपित = item.PostedOn.ToString ( " Dddd, MMMM डी, yyyy a \\ th: mm ") + आइटम। पोस्ट किए गए ऑन.ToString (" tt ")। ToLower ();
एक अन्य विकल्प (जो मैं एक सेकेंड में जांच करूंगा) वर्तमान डेटटाइम फॉर्मेट इन्फोइन्फो को प्राप्त करना है, प्रतिलिपि बनाएं, और एमेड / बजे डिज़ाइनरों को लोअर केस संस्करण में सेट करें। फिर सामान्य स्वरूपण के लिए उस प्रारूप जानकारी का उपयोग करें। आप DateTimeFormatInfo को कैश करना चाहते हैं, जाहिर है ...
संपादित करें: मेरी टिप्पणी के बावजूद, मैंने कैशिंग बिट को वैसे भी लिखा है। यह संभवतः तेज ऊपर दिए गए कोड की तुलना में नहीं होगा (क्योंकि यह एक लॉक और एक शब्दकोश लुकअप शामिल है) लेकिन यह कॉलिंग कोड को सरल बना देता है:
स्ट्रिंग फ़ॉर्मेट किया गया = Item.PostedOn.ToString ("dddd, MMMM d, yyyy a \\ th: mmtt", GetLowerCaseInfo ());
प्रदर्शित करने के लिए यहां एक पूर्ण प्रोग्राम है:
सिस्टम का उपयोग कर; System.Collections.Generic का उपयोग कर; System.Globalization का उपयोग कर; सार्वजनिक वर्ग टेस्ट {static void मुख्य () {Console.WriteLine (DateTime.Now.ToString ( "dddd, MMMM d, yyyy एक \\ वें: mmtt", GetLowerCaseInfo ());} निजी स्थिर केवल पढ़ने के शब्दकोश से & lt; DateTimeFormatInfo, DateTimeFormatInfo & gt; कैश = नया शब्दकोश & lt; DateTimeFormatInfo, DateTimeFormatInfo & gt; (); निजी स्थिर ऑब्जेक्ट कैश लॉक = नया ऑब्जेक्ट (); सार्वजनिक स्थैतिक DateTimeFormatInfo GetLowerCaseInfo () {DateTimeFormatInfo current = CultureInfo.CurrentCulture.DateTimeFormat; lock (cacheLock) {DateTimeFormatInfo ret; यदि (! कैश .TryGetValue (वर्तमान, बाहर सेवानिवृत्त)) {सेवानिवृत्त = (DateTimeFormatInfo) current.Clone (); ret.AMDesignator = ret.AMDesignator.ToLower (); ret.PMDesignator = ret.PMDesignator.ToLower (); कैश [वर्तमान] = रिटर्न;} वापसी रिटर्न;}}}
Comments
Post a Comment