web-dev-qa-db-fra.com

Convertit la date de la chaîne AAAAMMJJ en une valeur datetime

Duplicate possible:
Convertir une chaîne en DateTime en c #

Une question

J'ai une valeur de chaîne qui provient réellement de directoryInfo. Ce que je voulais accomplir est de convertir la valeur de chaîne en valeur de date pour permettre la comparaison.

Le nom du dossier est un exemple comme celui-ci C:\FOLD\20111120 et correctement, un autre chemin de dossier est comme ceci C:\FOLD\20111021

20111120 est en fait un format de date. J'essaie de le convertir en format de date pour faire une comparaison décide de supprimer le répertoire entier ou non.

Je pense que je vais coller mon code ici

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

J'ai essayé avec Convert.toDatetime () et j'obtiens une erreur qui ne permet pas de converser. Comment puis-je le faire avec cela?

51
Worgon

Vous devriez devez utiliser DateTime.TryParseExact.

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

OR

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

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