C#报错:at System.Convert.ToDateTime(String value)

Posted 谦谦均

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#报错:at System.Convert.ToDateTime(String value)相关的知识,希望对你有一定的参考价值。

今天写代码看到一个错误:at System.Convert.ToDateTime(String value)

百度了一下关于C#ToDateTime函数的用法,这里总结一下“string格式的日期时间字符串转为DateTime类型”的方法。
1,Convert.ToDateTime(string)
这种方法对参数string格式有要求,必须是yyyy-MM-dd hh:mm:ss,我的代码就是这种错误。
2,指定其他格式:Convert.ToDateTime(string, IFormatProvider)
示例:

DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();
dtFormat.ShortDatePattern = "yyyy/MM/dd";
DateTime  dt = Convert.ToDateTime("2016/10/10", dtFormat);

网上大部分教程在第一行少了个点,给新手带来了很大的误解,以为GlobalizationDateTimeFormatInfo是一个整体。第二个可以改进的地方是不需要System.Globalization。例如:

DateTimeFormatInfo dtFormat = new DateTimeFormatInfo
	ShortDatePattern = "yyyy/MM/dd"
;
DateTime  dt = Convert.ToDateTime("2016/10/10", dtFormat);

3,DateTime.ParseExact()

string dateString = "20161010";
DateTime dt = DateTime.ParseExact(dateString, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);

三种方法中,2和3都是自定义格式的,希望对大家有帮助!

以上是关于C#报错:at System.Convert.ToDateTime(String value)的主要内容,如果未能解决你的问题,请参考以下文章

C#报错:at System.Convert.ToDateTime(String value)

计划任务at命令使用报错

C# Prepared Statements - @ 符号(at / strudel 符号)查询

MySQL报错:ERROR 1406 (22001) at line 486: Data too long for column 'COMMENTS' at row 1

DBeaver执行.sql脚本报错:ERROR 1064 (42000) at line 1

DBeaver执行.sql脚本报错:ERROR 1064 (42000) at line 1