如何将Dropdownlist的数据值字段转换为日期时间

本文关键字:转换 字段 日期 时间 数据 Dropdownlist | 更新日期: 2023-09-27 18:27:58

我在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:字符串未被识别为有效的DateTime。

如何将Dropdownlist的数据值字段转换为日期时间

您需要显式解析格式为dd/MM/yyyy hh:mm:ss的日期时间(hh表示12小时格式,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");