字符串未被识别为c#的有效日期时间

本文关键字:有效日期 时间 识别 字符串 | 更新日期: 2023-09-27 18:09:44

我创建了一个web应用程序,它在localhost上工作良好,但当我上传web应用程序时,我在日历上得到一个错误

字符串未被识别为有效的日期时间。

Line 1291: string strstartdate = "";  
Line 1292: strstartdate = txtfrmdate.Text;  
Line 1293: DateTime dt = Convert.ToDateTime(strstartdate);  
Line 1294: string strfstartdate = dt.ToString(strstartdate);  
Line 1295: DateTime dtnew = Convert.ToDateTime(strfstartdate);  

它在日期范围(1/12)下工作正常,但是当我选择日期在(13/31)之间时,我得到这个错误。

这是选择的内容(13-09-2016)

My c# page

string strstartdate = "";
strstartdate = txtfrmdate.Text;
DateTime dt = Convert.ToDateTime(strstartdate);
string strfstartdate = dt.ToString(strstartdate);
DateTime dtnew = Convert.ToDateTime(strfstartdate);
SqlCommand cmd = new SqlCommand("csuvdaterange");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
con.Open();
SqlParameter[] param =
{
    new SqlParameter("@logintype",com.ToString()),
    new SqlParameter("@name",lblempname.Text),
    new SqlParameter("@datefrm",DateTime.ParseExact(txtfrmdate.Text, "dd-MM-yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")),
    new SqlParameter("@dateto",DateTime.ParseExact(txttodate.Text,"dd-MM-yyyy",CultureInfo.InvariantCulture).ToString("yyyy-MM-dd"))
};

字符串未被识别为c#的有效日期时间

web服务器上的CurrentCulture似乎是US,并且您的文本不是月在日之前的格式-它推断一个月13,这不是一个有效的日期。

你应该用同样的方式解析日期,就像你在后面的代码中做的那样:

DateTime.ParseExact(txtfrmdate.Text, "dd-MM-yyyy", CultureInfo.InvariantCulture)

使用DateTime。ParseExact而不是Convert。ToDateTime

为了避免系统对不同地区日期格式设置的混淆,我建议在转换类型时总是提到日期格式…