2011-11-21 31 views
40

Duplicar posible:
Convert string to DateTime in c#Convertir la cadena de fecha AAAAMMDD a un valor de fecha y hora

Una pregunta

me dieron un valor de cadena que realmente llegar desde DirectoryInfo. Lo que quería lograr es convertir el valor de cadena a un valor de fecha para hacer una comparación.

El nombre de la carpeta es la muestra como esto C: \ DOBLAR \ 20111120 y debidamente otra ruta de la carpeta es así C: \ DOBLAR \ 20111021

20111120 es en realidad un formato de fecha. Estoy tratando de convertirlo en formato de fecha para hacer algunas comparaciones decidir eliminar todo el directorio o no.

Creo que voy a pegar mi código aquí

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()); 
} 

he intentado con Convert.toDatetime() y me sale error que no puede hecho el converstion.How puedo hacer yo por lo que con esto?

+1

Esto podría ser techically un duplicado, pero es más claramente lo que necesitaba. +1 –

Respuesta

108

Debe tener que usar DateTime.TryParseExact.

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

O

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, pero no necesita pasar una matriz si solo está usando una cadena de formato único con 'TryParseExact': http://msdn.microsoft.com/en-us/library/ms131044.aspx – LukeH

Cuestiones relacionadas