2017-04-06 146 views
2

我有下面的代码,并且收到输入字符串格式不正确的错误消息。请帮我将字符串转换为DateTime格式问题C#

List<Crime> crimeList = new List<Crime>(); 
while (!reader.EndOfStream) 
{ 
    var line = reader.ReadLine(); 
    var values = line.Split(','); 
    crimeList.Add(new Crime() 
    { 
     Dates = DateTime.ParseExact(values[0],"yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture), 
     Category = values[1], 
     Description = values[2], 
     DayOfWeek = values[3], 
     PdDistrict = values[4], 
     Resolution = values[5], 
     Address = values[6], 
     x = Convert.ToDouble(values[7]), 
     y = Convert.ToDouble(values[8]) 
}); 

values[0]2015-05-13 23:53:00https://s23.postimg.org/x0g4k37kr/datetime_problem.png

+2

如果您将字符串值作为* text *包含在问题中,它会更容易帮助您。我的猜测是它包含一个不可打印的字符......你能在[mcve]中重现这个吗? –

回答

10

唯一的例外是从该行x = Convert.ToDouble(values[7])因为我在你的图像看到,values[7]是地址的string: - ?.

+0

我在一个巨大的csv文件(800k行)上工作,虽然第7列只包含1个单词,但显然有一些用逗号分隔的条目:( – 99LittleBugsInTheCode

+0

是的,它发生了,你可以检查你的数组的长度以确保你得到正确的数据 –

+0

我认为你的日期时间转换是正确的,所以它必须是别的。我的建议是试图注释每一行,直到你找出哪一行导致错误 –