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);
}
我正试图从我的程序将扫描的文件名中获得DateTime
。DateTime
格式为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//).