खोज…


ParseExact

var dateString = "2015-11-24";

var date = DateTime.ParseExact(dateString, "yyyy-MM-dd", null);
Console.WriteLine(date);

11/24/2015 12:00:00 पूर्वाह्न

ध्यान दें कि तीसरा पैरामीटर के रूप में CultureInfo.CurrentCulture पास करना null पास करने के समान है। या, आप एक विशिष्ट संस्कृति को पारित कर सकते हैं।

प्रारूप स्ट्रिंग्स

इनपुट स्ट्रिंग किसी भी प्रारूप में हो सकती है जो प्रारूप स्ट्रिंग से मेल खाती है

var date = DateTime.ParseExact("24|201511", "dd|yyyyMM", null);
Console.WriteLine(date);

11/24/2015 12:00:00 पूर्वाह्न

कोई भी वर्ण जो प्रारूप विनिर्देशक नहीं हैं, उन्हें शाब्दिक माना जाता है

var date = DateTime.ParseExact("2015|11|24", "yyyy|MM|dd", null);
Console.WriteLine(date);

11/24/2015 12:00:00 पूर्वाह्न

प्रारूप निर्दिष्टकर्ताओं के लिए मामला मायने रखता है

var date = DateTime.ParseExact("2015-01-24 11:11:30", "yyyy-mm-dd hh:MM:ss", null);
Console.WriteLine(date);

11/24/2015 11:01:30 पूर्वाह्न

ध्यान दें कि महीने और मिनट के मूल्यों को गलत गंतव्यों में पार्स किया गया था।

एकल-वर्ण स्वरूप के तार मानक स्वरूपों में से एक होने चाहिए

var date = DateTime.ParseExact("11/24/2015", "d", new CultureInfo("en-US"));
var date = DateTime.ParseExact("2015-11-24T10:15:45", "s", null);
var date = DateTime.ParseExact("2015-11-24 10:15:45Z", "u", null);

अपवाद

ArgumentNullException

var date = DateTime.ParseExact(null, "yyyy-MM-dd", null);
var date = DateTime.ParseExact("2015-11-24", null, null);

FormatException

var date = DateTime.ParseExact("", "yyyy-MM-dd", null);
var date = DateTime.ParseExact("2015-11-24", "", null);
var date = DateTime.ParseExact("2015-0C-24", "yyyy-MM-dd", null);
var date = DateTime.ParseExact("2015-11-24", "yyyy-QQ-dd", null);

// Single-character format strings must be one of the standard formats
var date = DateTime.ParseExact("2015-11-24", "q", null);

// Format strings must match the input exactly* (see next section)
var date = DateTime.ParseExact("2015-11-24", "d", null); // Expects 11/24/2015 or 24/11/2015 for most cultures

कई संभावित स्वरूपों को संभालना

var date = DateTime.ParseExact("2015-11-24T10:15:45", 
  new [] { "s", "t", "u", "yyyy-MM-dd" }, // Will succeed as long as input matches one of these
  CultureInfo.CurrentCulture, DateTimeStyles.None);

संस्कृति के अंतर को संभालना

var dateString = "10/11/2015";
var date = DateTime.ParseExact(dateString, "d", new CultureInfo("en-US"));
Console.WriteLine("Day: {0}; Month: {1}", date.Day, date.Month);

दिन: 11; माह: १०

date = DateTime.ParseExact(dateString, "d", new CultureInfo("en-GB"));
Console.WriteLine("Day: {0}; Month: {1}", date.Day, date.Month);

दिन: 10; महीना: 11

TryParse

यह विधि इनपुट के रूप में एक स्ट्रिंग को स्वीकार करती है, इसे DateTime में पार्स करने का प्रयास करती है, और सफलता या विफलता का संकेत देने वाला बूलियन परिणाम देता है। यदि कॉल सफल होता है, तो पार्स किए गए परिणाम के साथ out पैरामीटर के रूप में पारित चर आबादी है।

यदि पार्स विफल हो जाता है, तो out पैरामीटर के रूप में पारित चर डिफ़ॉल्ट मान, DateTime.MinValue सेट होता है।

TryParse (स्ट्रिंग, तारीख से बाहर)

DateTime parsedValue;

if (DateTime.TryParse("monkey", out parsedValue))
{
   Console.WriteLine("Apparently, 'monkey' is a date/time value. Who knew?");
}

यह विधि सिस्टम क्षेत्रीय सेटिंग्स और ज्ञात प्रारूपों जैसे आईएसओ 8601 और अन्य सामान्य प्रारूपों के आधार पर इनपुट स्ट्रिंग को पार्स करने का प्रयास करती है।

DateTime.TryParse("11/24/2015 14:28:42", out parsedValue); // true
DateTime.TryParse("2015-11-24 14:28:42", out parsedValue); // true
DateTime.TryParse("2015-11-24T14:28:42", out parsedValue); // true
DateTime.TryParse("Sat, 24 Nov 2015 14:28:42", out parsedValue); // true

चूंकि यह विधि संस्कृति की जानकारी को स्वीकार नहीं करती है, इसलिए यह सिस्टम लोकेल का उपयोग करती है। इससे अप्रत्याशित परिणाम हो सकते हैं।

// System set to en-US culture
bool result = DateTime.TryParse("24/11/2015", out parsedValue);
Console.WriteLine(result);

असत्य

// System set to en-GB culture
bool result = DateTime.TryParse("11/24/2015", out parsedValue);
Console.WriteLine(result);

असत्य

// System set to en-GB culture
bool result = DateTime.TryParse("10/11/2015", out parsedValue);
Console.WriteLine(result);

सच

ध्यान दें कि यदि आप यूएस में हैं, तो आपको आश्चर्य हो सकता है कि पार्स हुआ परिणाम 10 नवंबर है, न कि 11 अक्टूबर।

TryParse (स्ट्रिंग, IFormatProvider, DateTimeStyles, DateTime बाहर)

if (DateTime.TryParse(" monkey ", new CultureInfo("en-GB"),
    DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite, out parsedValue)
{
    Console.WriteLine("Apparently, ' monkey ' is a date/time value. Who knew?");
}

अपनी सिबलिंग विधि के विपरीत, यह अधिभार एक विशिष्ट संस्कृति और शैली (ओं) को निर्दिष्ट करने की अनुमति देता है। IFormatProvider पैरामीटर के लिए null पासिंग सिस्टम संस्कृति का उपयोग करता है।

अपवाद

ध्यान दें कि इस पद्धति के लिए कुछ शर्तों के तहत अपवाद फेंकना संभव है। ये इस अधिभार के लिए शुरू किए गए मापदंडों से संबंधित हैं: IFormatProvider और DateTimeStyles

  • NotSupportedException : IFormatProvider एक तटस्थ संस्कृति को निर्दिष्ट करता है
  • ArgumentException : DateTimeStyles एक मान्य विकल्प नहीं है, या इस तरह के रूप असंगत झंडे शामिल AssumeLocal और AssumeUniversal

TryParseExact

यह विधि TryParse और ParseExact संयोजन के रूप में व्यवहार करती है: यह कस्टम प्रारूप (एस) को निर्दिष्ट करने की अनुमति देता है, और एक बूलियन परिणाम देता है जो पार्स विफल होने पर एक अपवाद को फेंकने के बजाय सफलता या विफलता का संकेत देता है।

TryParseExact (स्ट्रिंग, स्ट्रिंग, IFormatProvider, DateTimeStyles, DateTime बाहर)

यह ओवरलोड एक विशिष्ट प्रारूप के खिलाफ इनपुट स्ट्रिंग को पार्स करने का प्रयास करता है। इनपुट स्ट्रिंग को पार्स किए जाने के लिए उस प्रारूप से मेल खाना चाहिए।

DateTime.TryParseExact("11242015", "MMddyyyy", null, DateTimeStyles.None, out parsedValue); // true

TryParseExact (स्ट्रिंग, स्ट्रिंग [], IFormatProvider, DateTimeStyles, DateTime से बाहर)

यह अधिभार इनपुट स्ट्रिंग को स्वरूपों की एक सरणी के विरुद्ध पार्स करने का प्रयास करता है। इनपुट स्ट्रिंग को पार्स किए जाने के लिए कम से कम एक प्रारूप से मेल खाना चाहिए।

DateTime.TryParseExact("11242015", new [] { "yyyy-MM-dd", "MMddyyyy" }, null, DateTimeStyles.None, out parsedValue); // true


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow