2017-03-05 126 views
0

This is the error. sam code parse same value in my other project, but not working in current project 异常类型“System.FormatException”出现在mscorlib.dll 附加信息:字符串未被承认的Valide日期时间日期时间解析错误

DateTime temp = DateTime.ParseExact(dataGridView1.Rows[i].Cells["Date/Time"].Value.ToString(), "dd/MM/yyyy HH:mm", null); 
       DateTime tempnext = DateTime.ParseExact(dataGridView1.Rows[i + 1].Cells["Date/Time"].Value.ToString(), "dd/MM/yyyy HH:mm", null); 
+2

发布代码,你得到一个错误 – CaptainHere

+0

人们几乎看不到任何这些小图像。使用调试器来检查抛出异常时要解析的任何值。 –

+0

@CaptainMagikarp你去那里......再检查一遍 –

回答

1

如果它工作在一个项目而不是另一个,它可能是Culture问题。

你可以试试:

DateTime dateTime = DateTime.ParseExact(dataGridView1.Rows[i].Cells["Date/Time"].Value.ToString(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); 

虽然你可能要考虑TryParse()TryParseExact(),在的情况下,这只是1无效值时有人进入,从而使整个程序不分解。

+0

感谢名单,我希望不工作我可能对我有帮助 –

1

您使用'DateTime.Parse 精确()'与格式dd/MM/yyyy HH:mm,但您输入13:1这将仅是格式HH:mH:m

因为你使用ParseExact输入必须在完全相同的格式,您所指定的,所以你需要像05/03/2017 13:01输入为它工作。

为了验证输入而不会破坏应用程序可以考虑使用常规DateTime.Parse()或者,如已经建议,DateTime.TryParseExact()

+0

抱歉输入与您提到的相同,如14/10/2017 13:01。我只想从输入 –

+0

得到13:01 @MuhammadHamza:然后我们回到了我们开始的地方。你确定这是_ **确切的** _输入吗?它在'Autos'窗口中是这样说的吗? - 我看到你正在使用与我可以从截图中获得的不同格式。目前的问题应该有效。 –

+0

这是文化问题...顺便说一句,比你...非常有帮助 –