一个问题
我得到了一个实际上来自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(),我收到无法进行转换的错误。我怎么能这样做?
答案 0 :(得分:126)
您必须使用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
}