我在asp.net中有一个dropdownlist控件,如下面的html:
<select name=drpDate" id="ContentPlaceHolder1_drpDate">
<option selected="selected" value="31/12/2015 00:00:00">دی 1394</option>
<option value="31/01/2016 00:00:00">بهمن 1394</option>
</select>
我必须获取所选日期并将其发送到sql查询。我这样做:
cmd.Parameters.AddWithValue("@InfoDate", Convert.ToDateTime(drpDate.SelectedValue.ToString()));
@InfoDate
在我的SQL查询中声明为datetime
,InfoDate保存在表2015-12-31 00:00:00.000
当我运行我的代码时,我收到了这个错误:
System.FormatException:String未被识别为有效的DateTime。
答案 0 :(得分:2)
您需要以dd/MM/yyyy hh:mm:ss
格式明确解析日期时间(hh
为12小时格式&amp; HH
为24小时格式):
cmd.Parameters.AddWithValue("@InfoDate",
DateTime.ParseExact(drpDate.SelectedValue.ToString(), "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture));
进行测试:
string nonConvertedDate = "31/01/2016 00:00:00";
DateTime date = DateTime.ParseExact(nonConvertedDate, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture);
string convertedDate = date.ToString("yyyy-mm-dd HH:mm:ss.fff");