C# Asp.net Convert.toDateTime(datevalue) 给出错误与不同的区域性信息需要日期模式
本文关键字:区域性 信息 模式 日期 错误 toDateTime Convert net Asp datevalue 出错 | 更新日期: 2023-09-27 18:35:08
在我的 Asp.net 网站中,我应用了两个文本框(txtstartdate,txtenddate),弹出窗口以格式("05/24/2012")给出日期。文化信息("en-US")工作正常,当我更改为("de")即德语时,它给出错误"System.FormatException:字符串未被识别为有效的日期时间。在我的代码隐藏文件中,我正在编写此代码
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
我的要求是日期时间变量必须给出格式为 5/1/2012 12:00:00 AM 的日期,无论设置文化信息对日期无关紧要。这样我就可以在具有列数据类型的 MsSql Server 现有表中执行选择查询 日期时间 与数据 (5/1/2012 12:00:00 AM) formart
更改区域性信息(从母版页下拉列表)后,英语到德语给出错误试过这个但不起作用
DateTime startdate = DateTime.ParseExact(sDate, "M/d/yyyy", null);
//tried also "MM/dd/yyyy"
注意:设置任何cultileinfo,但日期时间模式alwayz为5/1/2012 12:00:00 AM,即en-US
文化
调用 ParseExact
时,您可以尝试使用 "MM/dd/yyyy"
作为格式字符串,假设您确定输入将始终采用该格式。
或者,请尝试改用Convert.ToDateTime(yourString, CultureInfo.InvariantCulture)
。
我认为在这种情况下
,您必须将日历的altFormat设置为SQL服务器使用的格式。 然后,您可以使用隐藏字段来存储每个日期选择器的 altDate。 提交时,正确格式的 altField 值将发送到服务器,而不是向用户显示的区域性特定值。