2011-11-21 16 views
40

संभव डुप्लिकेट:
Convert string to DateTime in c#Convert YYYYMMDD स्ट्रिंग तारीख

एक सवाल

मैं एक स्ट्रिंग मान है कि वास्तव में DirectoryInfo से प्राप्त हो गया। जो मैं पूरा करना चाहता था वह तुलना करने के लिए स्ट्रिंग मान को दिनांक मान में परिवर्तित करना है।

फ़ोल्डर का नाम इस सी की तरह नमूना है: \ \ 20,111,120 मोड़ें और ठीक से एक और फ़ोल्डर पथ इस सी की तरह है: \ गुना \ 20111021

20111120 वास्तव में एक दिनांक स्वरूप है। मैं इसे पूरी निर्देशिका को हटाने या नहीं करने के लिए कुछ तुलना करने के लिए तारीख प्रारूप में रूपांतरित करने की कोशिश कर रहा हूं।

मैं) लगता है मैं अपने कोड यहाँ

DirectoryInfo dir = new DirectoryInfo(_FolderPath); 

foreach (DirectoryInfo f in dir.GetDirectories()) 
{ 
    String folderName = f.ToString(); 
    DateTime ConDt = Convert.ToDateTime(folderName); 
    Console.WriteLine(ConDt); 
    Console.WriteLine(ConDt.GetType()); 
    //Console.WriteLine(folderName.GetType()); 
    //Console.WriteLine(f.GetType()); 
} 

मैं Convert.toDatetime (साथ की कोशिश की पेस्ट जाएगा और मैं त्रुटि मिलती है कि converstion.How बना करने में असमर्थ मैं इस के साथ ऐसा कर सकते हैं?

+1

यह techically एक नकली हो सकता है, लेकिन यह अधिक स्पष्ट रूप से मैं क्या जरूरत है। +1 –

उत्तर

108

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

var newDate = DateTime.ParseExact("20111120", 
            "yyyyMMdd", 
            CultureInfo.InvariantCulture); 

या

string str = "20111021"; 
string[] format = {"yyyyMMdd"}; 
DateTime date; 

if (DateTime.TryParseExact(str, 
          format, 
          System.Globalization.CultureInfo.InvariantCulture, 
          System.Globalization.DateTimeStyles.None, 
          out date)) 
{ 
    //valid 
} 
+9

+1, लेकिन यदि आप 'TryParseExact'' के साथ केवल एक प्रारूप स्ट्रिंग का उपयोग कर रहे हैं, तो आपको सरणी पास करने की आवश्यकता नहीं है: http://msdn.microsoft.com/en-us/library/ms131044.aspx – LukeH

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