我有字符串到日期时间转换错误

时间:2016-12-24 06:15:11

标签: c# linq datetime

我有这段代码,根据日期(月)

得出一些统计数据
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。

原始数据:dates from database in dd/mm/yyyy format

1 个答案:

答案 0 :(得分:1)

问题在于解析可能由以下几点引起的CaseDate

1- CaseDate s的字符串格式不正确,可能就像“2016年2月10日”  这导致错误解析为“dd / MM / yyyy”

2-文化可能是罪魁祸首,因为日期的分隔符取决于它们。你可以尝试

DateTime.ParseExact(c.CaseDate,"dd/MM/yyyy",CultureInfo.InvariantCulture)

检查这些是否有助于您,如果不尝试解析一个独立循环中的日期,以便在导致问题的确切CaseDate生成运行时错误并在此处发布。