2010-12-21 12 views
9

मैं स्ट्रिंग से datatime में बदलने की कोशिश कर रहा हूँ करने के लिए कनवर्ट नहीं कर सकता प्रकार 'स्ट्रिंग' लेकिन एक एक त्रुटि उत्पन्न होती है। मैं वी.एस. 2003, .नेट फ्रेमवर्क 1.1परोक्ष 'System.DateTime'

DateTime dt = Convert.ToDateTime("11/23/2010"); 
string s2 = dt.ToString("dd-MM-yyyy"); 
DateTime dtnew = Convert.ToString(s2); 
उपयोग कर रहा हूँ

परोक्ष करने के लिए प्रकार 'स्ट्रिंग' कनवर्ट नहीं कर सकता 'System.DateTime'

किसी भी एक मुझे वाक्य रचना के साथ मदद कर सकते हैं कि कैसे करने के लिए त्रुटि हल करें।

+1

कड़ाई से आप टी की सिफारिश o कम से कम '.NET 2.0' पर स्विच करें। आपको वीएस 2005+ की आवश्यकता होगी। लेकिन आप मुफ्त वीएस 2010 का उपयोग कर सकते हैं जो वैसे भी वीएस 2003 की तुलना में बेहतर है! – abatishchev

उत्तर

12
string input = "21-12-2010"; // dd-MM-yyyy  
DateTime d; 
if (DateTime.TryParseExact(input, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out d)) 
{ 
    // use d 
} 
+0

+1 पर सहमत हुए –

5

मुझे लगता है कि आपने एक टाइपो बदल दिया है - Convert.ToString(s2)Convert.ToDateTime(s2) में बदलें।

+0

मैं एक अपवाद प्रकार 'System.FormatException' की एक बिना क्रिया का अपवाद हो रही है mscorlib.dll अतिरिक्त जानकारी में आई: स्ट्रिंग एक मान्य दिनांक समय के रूप में पहचाना गया था। – happysmile

+0

Convert.ToDateTime (s2) – happysmile

+0

को Convert.ToString (s2) से परिवर्तन से जब बदल बेहतर होगा कि तुम DateTime.Parse के साथ प्रयास करें()। यह कुछ त्रुटियों को खत्म कर देगा। ऐसा लगता है कि कन्वर्ट() 11/23/2010 को रो रहा है जहां यह सोच रहा है कि 23 एक महीने है। – Pradeep

2

DateTime.Parse(...) या DateTime.ParseExact(...) प्रयास करें यदि आप प्रारूप को निर्दिष्ट करने की जरूरत है।

4

आप DateTime.Parse, या DateTime.ParseExact का उपयोग करना चाहिए।

DateTime dt= DateTime.Parse("11/23/2010"); 
string s2=dt.ToString("dd-MM-yyyy"); 
DateTime dtnew = DateTime.Parse(s2); 

दोनों TryXXX वेरिएंट है कि एक बाहर पैरामीटर में पारित करने की आवश्यकता होती है, लेकिन एक अपवाद फेंक नहीं होगा अगर पार्स विफल रहता है:

DateTime dt; 
if(td = DateTime.TryParse("11/23/2010", out td)) 
{ 
    string s2=dt.ToString("dd-MM-yyyy"); 
    DateTime dtnew = DateTime.Parse(s2); 
} 
+1

+1 वहां पर सहमत हुए –

+0

1. 'डीटी = नया डेटाटाइम '; 2. 'डीटी = डेटटाइम। पर्स '; कुल: अनावश्यक तत्काल – abatishchev

+0

@abatishchev - बिल्कुल सही। – Oded

1

DateTime.Parse("01/01 2010"); या DateTime.TryParse का उपयोग करता है, तो आप सुनिश्चित नहीं हैं यह हर बार परिवर्तित होता है, यानी। हमेशा एक तारीख नहीं, लेकिन कभी-कभी खाली।

+0

+1 'DateTime.TryParse' के लिए –

3
DateTime dtnew = Convert.ToString(s2); 

समस्या यह है कि आपके फिर स्ट्रिंग में कनवर्ट करने string s2 और DateTime variable

में संग्रहीत की कोशिश करो यह हैः

DateTime dt = Convert.ToDateTime("11/23/2010"); 
string s2 = dt.ToString("dd-MM-yyyy"); 
DateTime dtnew = Convert.ToDateTime(s2); 
-1

आप सिंगल कोट्स को दोहरे उद्धरण चिह्नों ("") को बदलने की जरूरत ('')

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