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

Wor*_*gon 51 .net c# datetime

可能重复:
在c#中将字符串转换为DateTime

一个问题

我有一个实际从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());
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用Convert.toDatetime(),我得到错误,无法进行转换.我怎么能这样做?

ada*_*ost 133

你应该使用DateTime.TryParseExact.

var newDate = DateTime.ParseExact("20111120", 
                                  "yyyyMMdd", 
                                   CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

要么

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

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

  • +1,但如果您只使用带有`TryParseExact`的单个格式字符串,则不需要传递数组:http://msdn.microsoft.com/en-us/library/ms131044.aspx (11认同)