C# 将YYYYMMDD字符串日期转换为日期时间值

C# 将YYYYMMDD字符串日期转换为日期时间值,c#,.net,datetime,C#,.net,Datetime,可能重复: 问题 我得到了一个字符串值,它实际上是从directoryInfo获得的。 我想要完成的是将字符串值转换为日期值以进行比较 文件夹名称如下所示:C:\FOLD\20111120 另一个文件夹路径是这样的 C:\FOLD\20111021 20111120实际上是一种日期格式。我试图将其转换为日期格式,以便进行比较,决定是否删除整个目录 我想我应该把代码贴在这里 DirectoryInfo dir = new DirectoryInfo(_FolderPath); foreach

可能重复:

问题

我得到了一个字符串值,它实际上是从directoryInfo获得的。 我想要完成的是将字符串值转换为日期值以进行比较

文件夹名称如下所示:C:\FOLD\20111120 另一个文件夹路径是这样的 C:\FOLD\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(),但出现了无法进行对话的错误。我如何使用此选项?

您应该使用
DateTime.TryParseExact

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


+1,但如果只使用带有
TryParseExact
的单一格式字符串,则不需要传递数组:从技术上讲,这可能是一个重复的字符串,但更清楚地说,这是我需要的+1.
string str = "20111021";
string[] format = {"yyyyMMdd"};
DateTime date;

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