我有这段代码,根据日期(月)
得出一些统计数据var customersList = customerDatesBLL.GetAll()
.Where(cust => cust.CaseDate != null)
.GroupBy(c => DateTime.ParseExact(c.CaseDate,"dd/MM/yyyy",null).Month)
.Select(c => new {
SumOfCustomer = c.Count(),
mount = int.Parse(c.Select(x => (DateTime.ParseExact(x.CaseDate,
"dd/MM/yyyy", null)).Month.ToString()).FirstOrDefault())
})
.ToList();
该代码始终会产生FormatException
:
字符串未被识别为有效的DateTime。
答案 0 :(得分:1)
问题在于解析可能由以下几点引起的CaseDate
:
1- CaseDate
s的字符串格式不正确,可能就像“2016年2月10日”
这导致错误解析为“dd / MM / yyyy”
2-文化可能是罪魁祸首,因为日期的分隔符取决于它们。你可以尝试
DateTime.ParseExact(c.CaseDate,"dd/MM/yyyy",CultureInfo.InvariantCulture)
检查这些是否有助于您,如果不尝试解析一个独立循环中的日期,以便在导致问题的确切CaseDate
生成运行时错误并在此处发布。