2011-03-28 8 views
7

मैं DateTime.ToString विधि को संस्कृति जानकारी प्रदान करके स्थानीयकृत छोटी तिथियां प्रदर्शित कर रहा हूं। अब तक मैंडेटटाइम। टॉस्ट्रिंग स्वरूपण

x.ToString("d", ci); // 23.12.2000 

का उपयोग कर रहा था जो छोटी तारीख प्रदर्शित करता है। लेकिन अब मैं संक्षेप में दिन का नाम भी शामिल करना चाहता हूं। मैं

x.ToString("ddd d", ci); // pon 23 

कोशिश की, लेकिन अब d दिन विनिर्देशक के बजाय कम दिनांक स्वरूप तो दिन के बजाय नाम और लघु तारीख मैं केवल दिन नाम और दिन नंबर मिल हो जाता है।

मैं पूर्वनिर्धारित संस्कृति शॉर्ट डेट प्रारूप के साथ दिन प्रदर्शित करने के लिए फॉर्मेटर को कैसे समझाऊं?

उत्तर

9

कैसे के बारे में:

string.Format(ci, "{0:ddd} {0:d}", x) 
+1

प्रारूप के लिए यह "{0: ddd d}" नहीं होना चाहिए? – Manatherin

+3

नहीं, यह काम नहीं करेगा जैसा कि "पोन 23.12.2000" –

+0

@ मैनेथेरिन, के बजाय रॉबर्ट "पोन 23" का हवाला देते हुए, मूल प्रश्न में उदाहरण के समान ही समस्या होगी। मैं अपना दृष्टिकोण पसंद करता हूं, लेकिन क्रिस्टोफर ने समस्या को भी हल किया है। –

0

इस व्याख्या पर एक नज़र डालें:

http://www.csharp-examples.net/string-format-datetime/

शायद तुम कुछ उदाहरण देखते पा सकते हैं।

अद्यतन

टिप्पणी के जवाब के रूप में, उदाहरण के लिए पहले codeblock में 3 स्पष्ट रूप से ऐसा करने के तरीके:

String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day 

स्ट्रिंग स्वरूपण के लिए तारीख के बारे में एक सवाल Googling, और इस सवाल से टकराने अच्छे उदाहरणों का संदर्भ होने पर अधिक मूल्यवान होगा। इसलिए csharp-example साइट का संदर्भ।

+1

इसके अलावा गूगल के पहले परिणाम से कॉपी/चिपकाने सुविधाजनक नहीं है। ऐसा मत सोचो कि इसके लिए एक डाउनवोट योग्य है। जवाब गलत नहीं है, या प्रश्नों को याद करता है। –

+2

मुझे लगता है कि आप बिंदु खो रहे हैं, प्रश्न यह है कि "डीडीडी" को प्रदर्शित करने के बाद संस्कृति विशिष्ट प्रारूप में पूर्ण छोटी तिथि के बाद। आपका कोड नमूना ऐसा नहीं करता है। –

+0

अद्यतन उत्तर एक पूरी तरह से गलत जवाब देता है। यह एक उदाहरण आउटपुट के साथ भी टिप्पणी की है जो स्पष्ट रूप से गलत है। दिए गए लिंक में एक भी उदाहरण प्रश्न का उत्तर नहीं देता है। जवाब गलत दोनों है और सवाल याद आती है। –

1
x.ToString("ddd ", ci) + x.ToString("d", ci); 
+0

हाँ। इससे पहले कि मैंने यहां एक अच्छा जवाब दिया है, मैंने यही किया है। –

0

यदि कुछ और नहीं है, तो आप: x.ToString("ddd", ci) + " " + x.ToString("d", ci);

4

"मानक" स्वरूपण तार CultureInfo के DateTimeFormat के बराबर संपत्ति प्राप्त करने के द्वारा काम करते हैं। इस मामले में "d"ShortDatePattern संपत्ति पाता है, जो "dd.MM.yyyy", "dd/MM/yyyy", "MM/dd/yyyy", "yyyy-MM-dd" और इसी तरह के आधार पर कुछ होगा प्रश्न में उस लोकेल पर।

इसलिए तुम इतनी तरह एक कस्टम पैटर्न में इसका इस्तेमाल कर सकते हैं:

x.ToString("ddd " + ci.DateTimeFormat.ShortDatePattern, ci) // Sat 2000-12-23 on my set up, should presumably be pon 23.12.2000 on yours 
+0

+1 पूरी तरह से मुझे कुछ नया सिखाया। मैं स्ट्रिंग। फोर्मेट का इस्तेमाल करता। विकल्पों को सीखना अच्छा लगा। – Kamal

+0

स्ट्रिंग। @ क्रिस्टोफर जेन्सन के जवाब के अनुसार फोर्मेट एक ही बिल्ली को त्वचा के लिए एक अच्छा तरीका है, हालांकि ऊपर कुछ और जटिल मामलों से निपटने का एकमात्र तरीका हो सकता है जहां आप स्ट्रिंग को एक स्थान से टॉस्ट्रिंग तक पास करना चाहते हैं () दूसरे में कॉल करें (और इसलिए ToString() से String.Format() में बदल नहीं सकते हैं। और हाँ, यह * यह जानना अच्छा है कि मानक प्रारूप कैसे काम करते हैं :) –

+0

+1: अच्छा दृष्टिकोण @ जोन हन्ना। –

संबंधित मुद्दे