0

在我的Asp.net网站中,我有两个文本框(txtstartdate、txtenddate)应用了 JQquery Datepicker,弹出窗口以格式(“05/24/2012”)给出日期。对cultureInfo(“ en-US ”)工作正常,当我更改为(“ de ”)即德语时,它给出错误“System.FormatException:字符串未被识别为有效的DateTime。” . 在我的文件后面的代码中,我正在编写此代码

 string sDate = txtstartdate.Text;  //  05/01/2012 (debugging gives this values)
 string eDate = txtenddate.Text;    //   05/24/2012 (debugging gives this values)

 DateTime startdate = Convert.ToDateTime(sDate); //  5/1/2012 12:00:00 AM
 DateTime enddate = Convert.ToDateTime(eDate);   //  5/24/2012 12:00:00 AM

我的要求是datetime变量必须给出格式为 2012 年5 月 1 日上午 12:00:00的日期,无论文化信息集是什么,都与日期无关。这样我就可以在MsSql Server现有表中执行选择查询,该表具有列数据类型Datetime和数据(5/1/2012 12:00:00 AM) 格式

更改CultureInfo(从 Masterpage 下拉列表)后,英语到德语出现错误已尝试过此操作但无法正常工作

 DateTime startdate = DateTime.ParseExact(sDate, "M/d/yyyy", null); 
 //tried also "MM/dd/yyyy"

注意:设置任何 cultileinfo,但日期时间模式始终为 5/1/2012 12:00:00 AM 即en-US文化

4

2 回答 2

1

您可以在调用时尝试使用"MM/dd/yyyy"格式字符串ParseExact,假设您确定输入将始终采用该格式。

或者,尝试Convert.ToDateTime(yourString, CultureInfo.InvariantCulture)改用。

于 2012-05-24T12:26:46.853 回答
0

我认为在这种情况下,您必须将日历的altFormat设置为 SQL 服务器使用的格式。然后,您可以使用隐藏字段来存储每个日期选择器的 altDate。当您提交时,正确格式的altField的值将被发送到您的服务器,而不是向用户显示的特定于文化的值。

于 2012-05-24T13:26:15.813 回答