繁体   English   中英

解析dd / MM / yyyy格式时,发生DateTime解析错误。 字符串未被识别为有效的日期时间

[英]DateTime parsing error while parsing dd/MM/yyyy format. String was not recognized as valid datetime

我使用Web用户控件中某些页面元素的值创建一个字符串,如下所示

string bookingdate = ddlDate.SelectedItem.Text 
                       + "/" + ddlMonth.SelectedValue + "/" 
                       + ddlMonth.SelectedItem.Text.Substring(4, 2);

并获取“字符串未被识别为有效的DateTime”。 下一行错误

cmd.Parameters.Add(new SqlParameter("@ArrivalDate", SqlDbType.DateTime)).Value = 
    DateTime.ParseExact(bookingdate, "dd/MM/yyyy", CultureInfo.InvariantCulture);

如何更改此字符串“ bookingdate”的值以解决问题。

据我了解,您需要使用dd/mm/yyyy Indian Date Format 因此,在您的代码中,将参数作为字符串传递,并在sql中使用Convert(date,Convert(datetime,@ArrivalDate,103))处理它。 如果仅需要日期并且在Sql 2008 or above上,则将date用作数据类型

Convert(datetime,@ArrivalDate,103) and leave your datatype as datetime

在cs中:

cmd.Parameters.AddWithValue("@ArrivalDate", bookingdate);

因此, ddlMonth包含这种格式的项目(您将链接发布到页面上):

<option value="08">Aug 14</option>

现在,您尝试从中提取月份和年份部分:

ddlMonth.SelectedValue + "/" + ddlMonth.SelectedItem.Text.Substring(4, 2)

您的格式字符串是这样的: dd/MM/yyyy

您已经看到问题了吗? 格式字符串期望年份为四位数。

而是使用以下格式字符串: dd/MM/yy

DateTime.ParseExact(bookingdate, "dd/MM/yy", CultureInfo.InvariantCulture);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM