String to DateTime dd/mm/yy error


foreach (var file in Directory.GetFiles(@"C:UsersAndrewDesktopTimesheets2011", "*.xlsx", SearchOption.AllDirectories)){             
  Paycheck p = new Paycheck(DateTime.ParseExact(file.Substring(file.LastIndexOf("_" + 1), 6), "dd/mm/yy", null), file);
  _Paychecks.Add(p);
}

我正试图从我的程序将扫描的文件名中获得DateTimeDateTime格式为dd/mm/yy。每次我看到这行代码:

Paycheck p = new Paycheck(DateTime.ParseExact(file.Substring(file.LastIndexOf("_" + 1), 6), "dd/mm/yy", null), file);

程序不做任何事情就跳转到应用程序。它不会给我一个错误信息和任何信息,关于正在发生的事情。我确信我写这篇文章的方式有些令人困惑,所以请告诉我你需要澄清的地方。

下面是一个有帮助的文件名示例;

每周时间&费用表_at_073111

您需要使用大写的MM来表示Month而不是小写的mm

从您的示例日期字符串07312011中,它看起来像

前两位- 07 => Month
下两位- 31 => Date
后四位- 2011 => Year

所以你的格式应该是MMddyyyy

EDIT:关闭LastIndexOf()函数后需要添加1

试试这个:

Paycheck p = new Paycheck(DateTime.ParseExact(file.Substring(
                   file.LastIndexOf("_") + 1, 6), "MMddyyyy", null), file);

试试这个

将字符串转换为日期时间时,使用

 Convert.ToDateTime(//your string which is converted to DateTime//).

相关内容

  • 没有找到相关文章

最新更新