繁体   English   中英

无法将字符串识别为有效的DateTime:格式异常

[英]String was not recognized as a valid DateTime: Format exception

我有这样的路径...“ C:\\ restore \\ restoredb \\”

在那个路径中,我有这样的文件..

 backup-2011-10-12T17-16-51.zip
 backup-2011-10-11T13-24-45.zip

我有一个表单,在那个表单中,我有一个列表框和combobox(cbrestore)我有这样的combobox项...月,3个月,6个月,年...

我想要的是,如果我选择组合框项目(月份),我想显示这些日期(2011年12月10日至2011年12月9日)之间存储在该文件夹中的文件名。

如果我选择组合框项目(3个月),我想显示在这些日期(2011年12月10日至2011年12月7日)之间存储在该文件夹中的文件名。

为此,我已经尝试过....但是,如果我选择组合框项目月份,那么我将收到如下所述的错误

 List<String> t = Directory.GetFiles(@"C:\restore\restoredb\").ToList();
    List<String> y = new List<string>();
    List<String> u = new List<string>();



    foreach (var zzz in t)
    {
        y.Add(Path.GetFileName(zzz));
    }


    if (comboBox1.Text == "Month")
    {
        u =
       (from String s in y where ((DateTime.Now.Month - DateTime.Parse(s.Substring(8, 10)).Month) < 1) && (DateTime.Now.Year - DateTime.Parse(s.Substring(8, 10)).Year == 0) select s).
           ToList();
    }

错误: 未处理格式异常 ,字符串未被识别为有效的DateTime。

在这条线

(DateTime.Now.Month - (DateTime.Parse(s.Substring(8, 10)).Month) < 1) && (DateTime.Now.Year - DateTime.Parse(s.Substring(8, 10)).Year == 0)

请问对此有什么帮助...

非常感谢.....

我认为您在索引中犯了一个错误。

尝试使用s.Substring(7,10)。

在我看来,您的索引不正确。 您正在011-10-12T

s.Substring(7,10)

s.Substring(8,10)是基于您输入的字符串“ 011-10-12T”,不会被解析为日期或日期的一部分。

尝试从输入字符串构造日期时间,例如:

 string input = "backup-2011-10-12T17-16-51.zip";

            string[] splitInputs = input.Split('-');

            DateTime inputDate = new DateTime(
                int.Parse(splitInputs[1]), //Year
                int.Parse(splitInputs[2]), //Month
                int.Parse(splitInputs[3].Split('T')[0]), //Day left of the T 
                int.Parse(splitInputs[3].Split('T')[1]), //Hour, right of the T
                int.Parse(splitInputs[4]), //Minutes
                int.Parse(splitInputs[5].Split('.')[0])); //Seconds, left of the .zip

并使用构造好的DateTime进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM