我正在使用此脚本作为日期选择器:
<script type="text/javascript">
$(function () {
$("[id$=txtDate]").datepicker({
dateFormat: 'dd/m/yy',
showOn: 'button',
buttonImageOnly: true,
buttonImage: 'http://192.168.211.71/Imagens/calendar_icon.png'
});
});
</script>
$("[id$=txtDate]").datepicker({
在这一行中,我将日期选择器分配给txtDate控件(TextBox)。当我尝试将其作为参数添加到存储过程时出现问题:
Cmd.Parameters.Add("@DataPedido", Data.SqlDbType.DateTime).Value = DateTime.ParseExact(TxtDate.Text, "dd/M/yyyy", Nothing)
我得String was not recognized as a valid DateTime.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
如何正确地将文本框的值解析为DateTime?
答案 0 :(得分:0)
如果您将Nothing
作为第三个参数传递给DateTime.ParseExact
,请说:&#34;使用我当前的文化日期分隔符代替/&#34; 。但实际上你想使用斜杠作为分隔符。因此,您可以使用InvariantCulture
:
Dim dt = DateTime.ParseExact(TxtDate.Text, "dd/M/yyyy", System.Globalization.CultureInfo.InvariantCulture)
屏蔽这种特殊格式说明符的另一种方法是使用撇号:
DateTime.ParseExact(TxtDate.Text, "dd'/'M'/'yyyy", Nothing)
以下是相关的documentation:
&#34; /&#34;自定义格式说明符表示日期分隔符 用于区分年,月和日。 合适 从中检索本地化日期分隔符 当前或指定的DateTimeFormatInfo.DateSeparator属性 培养强>
并在DateTime.ParseExact
中提及:
如果provider为null,则 CultureInfo对象对应于 使用当前文化。
我想这是jQuery-Datepicker控件的一个问题。看看这里:
ASP.NET textbox with jQuery UI DatePicker value lost when doing a postback