2010-02-02 16 views
38

सबसे अच्छा तरीका क्या सी # में तारीख करने के लिए स्ट्रिंग परिवर्तित करने के लिए अगर मेरे भेजे दिनांक स्वरूपConvert स्ट्रिंग अगर मेरे भेजे तारीख प्रारूप YYYYMMDD में है

पूर्व YYYYMMDD में है: 20001106

उत्तर

53

डेटटाइम का उपयोग करें। ParseExact()। कुछ की तरह:

string date = "20100102"; 
    DateTime datetime = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture); 
+0

@ डायनेमी फिर से प्रयास करें, मैंने अभी उचित प्रारूप (केस मामलों) के साथ संपादित किया है –

+2

ल्यूक के समाधान के अनुसार यह ठीक दिनांक प्रारूप 'yyyyMmdd' होना चाहिए, अन्यथा निष्पादन बह रहा है 'स्ट्रिंग को वैध डेटाटाइम के रूप में पहचाना नहीं गया था' – Sreedhar

11
DateTime.TryParseExact(myDateString, "yyyyMMdd", 
         CultureInfo.InvariantCulture, 
         DateTimeStyles.None, out myDateVar) 
+2

मैं इस विधि का इस्तेमाल किया है, क्योंकि यह मुझे TryParseExact की वापसी मान की जाँच करें और यदि तिथि ठीक से परिवर्तित पता करने के लिए अनुमति दी। जब मैंने ऐसा नहीं किया तो मैंने एक डिफ़ॉल्ट सेट किया। –

3
DateTime yourDateTime = DateTime.ParseExact(yourString, "yyyyMMdd", null); 
4

"yyyyMMdd" का एक पैटर्न स्ट्रिंग यदि आप .NET 2.0 या बेहतर कर रहे हैं के साथ प्रयोग के DateTime.TryParseExact

आप .NET 1.1 के साथ फंस रहे हैं, तो का उपयोग DateTime.ParseExact

पैटर्न तार बनाने के लिए नियमों के लिए Standard DateTime Format Strings देखते हैं।

3

TryParseExact का उपयोग करना आम तौर पर ParseExact से अच्छा है क्योंकि रूपांतरण विफल होने पर यह अपवाद नहीं फेंक देगा। इसके बजाय यह सच रिटर्न अगर यह सफल गलत है अगर यह नहीं बताया गया है:

DateTime dt; 
if (DateTime.TryParseExact("20100202", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) 
{ 
    Console.WriteLine(dt.ToString()); 
} 
संबंधित मुद्दे