帮助将字符串日期转换为DateTime
我在带有提交按钮的文本框上使用Ajax控件工具包日历扩展器。 简单。
调试器显示文本正确传输到调用方法,但此行转换代码将文本框文本转换为1/1/0001 12:00:00 AM。 文本框日期为:2011年4月15日
DateTime txtMyDate = Convert.ToDateTime(txtDate.Text);
我究竟做错了什么?
您应该使用DateTime.Parse()方法:
DateTime txtMyDate = DateTime.Parse(txtDate.Text);
如前所述,您还可以使用类似的语法使用DateTime.ParseExact() ,如下所示:
DateTime txtMyDate = DateTime.ParseExact(txtDate.Text, [string format], [IFormatProvider provider]);
Parse vs ParseExact:
Parse() – 假设数据是有效的,并尽力使其适合类型,当开发人员有机会调用常识时,这些事情看起来有点模糊。
ParseExact() – 只允许指定的确切格式,并将抛出任何变化。
Parse与ParseExact的来源
有很多方法可以将文本转换为DateTime,请尝试以下方法:
DateTime txtMyDate = DateTime.ParseExact(txtDate.Text, "M/d/yyyy", CultureInfo.InvariantCulture);
编辑:忘记了文化信息参数
使用DateTime.ParseExact从格式化日期字符串中提取日期值:
DateTime dateValue = DateTime.ParseExact(stringDateValue, "M/d/yyyy", CultureInfo.InvariantCulture);
尝试
DateTime instance = DateTime.Parse( txtDate.Text ) ;
它在某种程度上可以接受它的灵活性。 或者, DateTime.ParseExact()
将使您可以控制转换。