दिलचस्प पोस्ट
डेटा से FFT चोटियों को प्राप्त करना "यह" कीवर्ड कैसे काम करता है? QML में उपयोग के लिए सामान्य ऑब्जेक्ट मॉडल कैसे बनाऊँ? कंटेनर-द्रव बनाम। कंटेनर java.lang.IllegalArgumentException: और नामक सर्वलेट यूआरएल-पैटर्न के लिए मैप किए जाते हैं, जिन्हें अनुमति नहीं है डबल घुंघराले ब्रेसिज़ के साथ AngularJS-Twig संघर्ष क्यों regex कन्स्ट्रक्टर को डबल पलायन करने की आवश्यकता है? Cv :: warp निष्पादित सीवी :: प्वाइंट के एक सेट पर एक फर्जी डेस्किंग के लिए घोषित स्ट्रिंग और आवंटित स्ट्रिंग के बीच का अंतर कोणीय जेएस में नियंत्रकों के बीच डेटा पासिंग? जावा: असली दुनिया में डबल की बजाए हमें बिगडेकल का उपयोग क्यों करना चाहिए? आईडी के लिए jquery चयनकर्ता विशिष्ट पाठ के साथ शुरू होता है एक काल्पनिक क्षेत्र के चारों ओर वस्तु को देखकर SCNCamera नोड को घुमाएं गतिशील रूप से एक जावास्क्रिप्ट फ़ाइल लोड PHP चेतावनी: foreach के लिए अमान्य तर्क प्रदान किया गया ()

स्ट्रिंग को मान्य दिनांक समय "प्रारूप डीडी / एमएम / य्याय" के रूप में नहीं पहचाना गया था

मैं अपने स्ट्रिंग फ़ॉर्मेटेड वैल्यू को प्रारूप प्रकार dd/MM/yyyy साथ परिवर्तित करने का प्रयास कर रहा हूं।

 this.Text="22/11/2009"; DateTime date = DateTime.Parse(this.Text); 

समस्या क्या है ? इसकी दूसरी ओवरराइड है जो IFormatProvider लिए पूछता है यह क्या है? क्या मुझे यह भी पारित करने की आवश्यकता है? यदि हां, तो इस मामले के लिए इसका उपयोग कैसे करें?

संपादित करें

ParseExact और ParseExact बीच अंतर क्या हैं?

2 संपादित करें

स्लेक्स और सैम के दोनों ही उत्तर मेरे लिए काम कर रहे हैं, वर्तमान में उपयोगकर्ता इनपुट दे रहा है लेकिन मुझे यह आश्वासन दिया जाएगा कि वे मास्कटैक्सबॉक्स का उपयोग करके मान्य हैं।

कौन सा जवाब बेहतर है जैसे सभी प्रकार के पहलुओं पर विचार करें जैसे कि प्रकार की सुरक्षा, प्रदर्शन या ऐसा कुछ जिसे आप महसूस करते हैं

वेब के समाधान से एकत्रित समाधान "स्ट्रिंग को मान्य दिनांक समय "प्रारूप डीडी / एमएम / य्याय" के रूप में नहीं पहचाना गया था"

DateTime.ParseExact उपयोग करें। DateTime.ParseExact

 this.Text="22/11/2009"; DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", null); 

आपको ParseExact को कॉल करने की आवश्यकता है, जो उस तिथि को पार्स करता है जो आपके द्वारा आपूर्ति की जाने वाली किसी प्रारूप से बिल्कुल मेल खाता है।

उदाहरण के लिए:

 DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture); 

IFormatProvider पैरामीटर तिथि को पार्स करने के लिए उपयोग करने के लिए संस्कृति को निर्दिष्ट करता है।
जब तक आपकी स्ट्रिंग उपयोगकर्ता से नहीं आती है, आपको CultureInfo.InvariantCulture । पास होना चाहिए।
अगर स्ट्रिंग उपयोगकर्ता से आती है, तो आपको CultureInfo.CurrentCulture पास करनी चाहिए, जो कि सेटिंग्स का उपयोग करेगा जो उपयोगकर्ता नियंत्रण कक्ष में क्षेत्रीय विकल्प में निर्दिष्ट है।

डेटटाइम की स्ट्रिंग का प्रतिनिधित्व करना एक मुश्किल काम है क्योंकि विभिन्न संस्कृतियों के पास अलग-अलग तारीख स्वरूप हैं। .Net इन दिनांक प्रारूपों से अवगत है और उन्हें आपकी वर्तमान संस्कृति DateTime.Parse(this.Text)DateTime.Parse(this.Text)DateTime.Parse(this.Text) से खींचती है, जब आप DateTime.Parse(this.Text) कॉल करते हैं। DateTime.Parse(this.Text) ;

उदाहरण के लिए, स्ट्रिंग "22/11/2009" संयुक्त राज्य अमेरिका (एन-यूएस) के लिए शॉर्टडेट पाटर्न से मेल नहीं खाती है, लेकिन यह फ़्रांस (एफआर-एफआर) के लिए मेल खाता है।

अब, आप या तो DateTime.ParseExact कॉल कर सकते हैं और सटीक प्रारूप स्ट्रिंग में जो आप की उम्मीद कर रहे हैं, पास कर सकते हैं या आप DateTime.Parse को किसी उचित संस्कृति में पास कर सकते हैं।

उदाहरण के लिए, यह आपकी तिथि को सही ढंग से पार्स करेगा:

 DateTime.Parse( "22/11/2009", CultureInfo.CreateSpecificCulture("fr-FR") ); 

बेशक, आपको केवल फ़्रैंक चुनना नहीं चाहिए, बल्कि आपकी आवश्यकताओं के अनुरूप कुछ भी नहीं होना चाहिए।

आपको यह जानने की आवश्यकता है कि क्या System.Threading.Thread.CurrentThread.CurrentCulture सेट है, और यदि / क्यों यह आपकी उम्मीद से अलग है

यद्यपि उपरोक्त समाधान प्रभावी हैं, आप निम्न के साथ webconfig फ़ाइल को भी संशोधित कर सकते हैं …

 <configuration> <system.web> <globalization culture="en-GB"/> </system.web> </configuration> 

रेफरी: उत्पादन मशीन की तुलना में स्थानीय मशीन पर अलग-अलग डेटटाईम प्रारूप

आपको उस विशिष्ट दिनांक स्वरूप के लिए संस्कृति को निर्दिष्ट करना पड़ सकता है:

  Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); //dd/MM/yyyy this.Text="22/11/2009"; DateTime date = DateTime.Parse(this.Text); 

अधिक जानकारी के लिए यहां जाएं:

http://msdn.microsoft.com/en-us/library/5hh873ya.aspx

स्ट्रिंग को डेटटाइम में कनवर्ट करने के लिए इसका उपयोग करें:

 Datetime DT = DateTime.ParseExact(STRDATE,"dd/MM/yyyy",System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat) 
 private DateTime ConvertToDateTime(string strDateTime) { DateTime dtFinaldate; string sDateTime; try { dtFinaldate = Convert.ToDateTime(strDateTime); } catch (Exception e) { string[] sDate = strDateTime.Split('/'); sDateTime = sDate[1] + '/' + sDate[0] + '/' + sDate[2]; dtFinaldate = Convert.ToDateTime(sDateTime); } return dtFinaldate; } 

जैसा कि ऊपर दिए गए किसी व्यक्ति ने कहा है कि आप उसे स्ट्रिंग पैरामीटर के रूप में भेज सकते हैं लेकिन उदाहरण के लिए: '20130121' का प्रारूप होना चाहिए और आप इसे सीधे उस कंट्रोल से सीधे ले जा सकते हैं। तो आप इसे उदाहरण के लिए टेक्स्ट बॉक्स से प्राप्त करेंगे:

 date = datetextbox.text; // date is going to be something like: "2013-01-21 12:00:00am" 

इसे बदलने के लिए: '20130121' आप उपयोग करते हैं:

 date = date.Substring(6, 4) + date.Substring(3, 2) + date.Substring(0, 2); 

ताकि एसक्यूएल इसे परिवर्तित कर अपने डाटाबेस में रख सकें।

बहुत समय बिताने के बाद मैंने इस समस्या का समाधान किया है

  string strDate = PreocessDate(data); string[] dateString = strDate.Split('/'); DateTime enter_date = Convert.ToDateTime(dateString[1]+"/"+dateString[0]+"/"+dateString[2]); 

इस संदर्भ के आधार पर, अगले दृष्टिकोण मेरे लिए काम किया:

 // eg format = "dd/MM/yyyy", dateString = "10/07/2017" var formatInfo = new DateTimeFormatInfo() { ShortDatePattern = format }; date = Convert.ToDateTime(dateString, formatInfo); 

आप भी उपयोग कर सकते हैं

 this.Text = "22112009"; DateTime newDateTime = new DateTime(Convert.ToInt32(this.Text.Substring(4, 4)), // Year Convert.ToInt32(this.Text.Substring(2,2)), // Month Convert.ToInt32(this.Text.Substring(0,2)));// Day 

कोड के नीचे मेरे लिए काम किया:

 DateTime date = DateTime.Parse(this.Text, CultureInfo.CreateSpecificCulture("fr-FR")); 

नाम स्थान

 using System.Globalization; 

मैन्युअल बदलें:

 string s = date.Substring(3, 2) +"/" + date.Substring(0, 2) + "/" + date.Substring(6, 4); 

11/22/2015 से इसे 22/11/2015 में परिवर्तित किया जाएगा