【问题标题】:Convert YYYYMMDD string date to a datetime value [duplicate]将 YYYYMMDD 字符串日期转换为日期时间值 [重复]
【发布时间】:2012-01-02 15:47:06
【问题描述】:

可能重复:
Convert string to DateTime in c#

一个问题

我得到了一个实际从 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(),但出现无法进行转换的错误。我该怎么做?

【问题讨论】:

  • 这在技术上可能是重复的,但它更清楚地是我需要的。 +1

标签: c# .net datetime


【解决方案1】:

你应该必须使用DateTime.TryParseExact

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

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

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

【讨论】:

猜你喜欢
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
相关资源
最近更新 更多