2012-04-02 11 views
7

खोज रहे हैं मैं सटीक संरचना की आपूर्ति के लिए देखने के लिए: M/d/yyyy hh:mm:ss ttयदि मैं सटीक संरचना निर्दिष्ट करता हूं तो TryParseExact को CultureInfo की आवश्यकता क्यों होती है?</p> <pre><code>DateTime.TryParseExact(dateString, "M/d/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, 0, out dateValue) </code></pre> <p>पर

प्रश्न

यदि हां, तो मैं भी CultureInfo निर्दिष्ट करने के लिए की आवश्यकता क्यों करना चाहिए?

+1

लघु संस्करण: आपने '/' या ':' –

उत्तर

9

ठीक है, महीने के नाम भी स्थानीयकृत किए जा सकते हैं। और शायद कुछ विदेशी संस्कृतियों में वर्षों को एक अलग तरीके से भी गिना जाता है।

संपादित करें:
उदाहरण:

string x = "Montag, 2. April 2012"; 
DateTime dt1, dt2; 
bool r1 = DateTime.TryParseExact(x, "D", new CultureInfo("de-DE"), 0, out dt1); 
bool r2 = DateTime.TryParseExact(x, "D", new CultureInfo("en-US"), 0, out dt2); 

(r1 == true, r2 == false)।

या, दूसरे दौर रास्ता:

string y = "Monday, April 02, 2012"; 
DateTime dt3, dt3; 
bool r3 = DateTime.TryParseExact(y, "D", new CultureInfo("de-DE"), 0, out dt3); 
bool r4 = DateTime.TryParseExact(y, "D", new CultureInfo("en-US"), 0, out dt4); 

(r3 == false, r2 == true)।

+0

उदाहरण निर्दिष्ट नहीं किया है ??????? –

+0

@ रॉय: संपादित उत्तर को देखें। – Vlad

+1

सोमवार के लिए यह जर्मन ('de-DE') है (लेकिन शायद आप हमारे साथ छवि साझा कर सकते हैं?) – Vlad

4

क्योंकि प्रारूप स्ट्रिंग शब्दशः नहीं है। उदाहरण के लिए आपने "/" और ":" का उपयोग किया है, लेकिन इनपुट स्ट्रिंग के लिए date और timeCultureInfo द्वारा प्रदान किए गए विभाजक का उपयोग करने की आवश्यकता है। D/M/yyyy
इन आदानों सभी मान्य हैं::

इस प्रारूप स्ट्रिंग कल्पना कीजिए

  • 04/02/2012 (अपरिवर्तनीय संस्कृति के लिए, संयुक्त राज्य अमरीका);
  • (फिनलैंड के लिए)
  • (मोरक्को के लिए)

  • 04-02-2012 इसके अलावा साधारण "एम" विनिर्देशक [1..12] है या कर सकते हैं 04.02.2012 [1..13] , कैलेंडर के आधार पर ही (एमएसडीएन देखें)।

    "केक पर मोमबत्ती" के रूप में कार्य सामान्य है, इसलिए प्रारूप प्रारूप में स्थानीयकरण (या देश निर्भर) मूल्य (सप्ताह के नाम या वर्ष निर्दिष्ट के बारे में सोचें, उदाहरण के लिए, चीनी या जापानी में) ।

  • +0

    मुझे समझ में नहीं आता क्या आप कृपया समझा सकते हैं? –

    +0

    स्ट्रिंग "एम/डी/yyyy" एन-यूएस संस्कृति में "4/2/2012" के लिए एक प्रारूप विनिर्देशक है, लेकिन एक वैध इनपुट है, उदाहरण के लिए, अरबी संस्कृति के लिए भी "4-2-2012"।"/" वर्ण का अर्थ है "दी गई संस्कृति के लिए डिफ़ॉल्ट दिनांक विभाजक"। वैसे भी मैंने एक उदाहरण के साथ जवाब अद्यतन किया। –

    +0

    लेकिन ** मैं ** उसे बता रहा हूं कि सेपरेटर्स क्या हैं! मैंने x/xx/xxx लिखा है, इसलिए इसकी '/' ... –

    0

    आप, क्योंकि अगर आप इसे प्रारूप dd-mmm-yyyy पारित यह संस्कृति बताने की आवश्यकता तो 2012/01/05

    में पारित अंग्रेजी में 01 मई 2012

    हो सकता है कि

    लेकिन एक और संस्कृति में यह 01-माई -2012

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

    • कोई संबंधित समस्या नहीं^_^