C# DateTime.Parse或Convert.ToDateTime不起作用

C# DateTime.Parse或Convert.ToDateTime不起作用,c#,asp.net,asp.net-ajax,ajaxcontroltoolkit,C#,Asp.net,Asp.net Ajax,Ajaxcontroltoolkit,我有一个带日历扩展器的文本框 格式应如下所示: <add key="DateFormat" value="dd/MM/yyyy"/> datett= DateTime.Parse(txt.Text), 上面写着“例外” 我调试并尝试了Convert.ToDatetime,出现了相同的异常 我正在测试的文本是2015年5月30日 根据我在web.config中的格式,它应该可以正常工作 更新1 我使用以下代码根据用户选择更改页面的语言和文化,这可能就是它失败的原因 我看到了很多答案

我有一个带日历扩展器的文本框

格式应如下所示:

<add key="DateFormat" value="dd/MM/yyyy"/>
datett= DateTime.Parse(txt.Text),
上面写着“例外”

我调试并尝试了Convert.ToDatetime,出现了相同的异常

我正在测试的文本是2015年5月30日

根据我在web.config中的格式,它应该可以正常工作

更新1 我使用以下代码根据用户选择更改页面的语言和文化,这可能就是它失败的原因

我看到了很多答案,第二个问题是,如何获得当前的文化

/// <summary>
        /// Handles the AcquireRequestState event of the Application control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        protected void Application_AcquireRequestState(object sender, EventArgs e)
        {
            //Create culture info object 
            /*var ci = new CultureInfo(Session["Language"].ToString());
            System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
            System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);*/

            System.Web.UI.Page p = (System.Web.HttpContext.Current.Handler as System.Web.UI.Page);
            if (p != null)
            {
                p.UICulture = p.Culture = new CultureInfo((string)Session["Language"]).Name;
            }
        }
//
///处理应用程序控件的AcquisiteRequestState事件。
/// 
///事件的来源。
///包含事件数据的实例。
受保护的无效应用程序状态(对象发送方、事件参数e)
{
//创建区域性信息对象
/*var ci=new CultureInfo(会话[“语言”].ToString());
System.Threading.Thread.CurrentThread.CurrentUICulture=ci;
System.Threading.Thread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(ci.Name)*/
System.Web.UI.Page p=(System.Web.HttpContext.Current.Handler作为System.Web.UI.Page);
如果(p!=null)
{
p、 UICulture=p.Culture=newcultureinfo((字符串)会话[“语言”])。名称;
}
}

解析时应添加格式化程序。将DateFormat键添加到web.config本身不会执行任何操作

VehicleDesctructionDate = DateTime.Parse(TxtVehicleDestructionDateReturnedVehicle.Text , /* put formatter here */,null);

在所有情况下,最好使用TryParse来处理任何格式错误。

在解析时应添加格式设置程序。将DateFormat键添加到web.config本身不会执行任何操作

VehicleDesctructionDate = DateTime.Parse(TxtVehicleDestructionDateReturnedVehicle.Text , /* put formatter here */,null);
Date date = new Date(location.getTime());
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
mTimeText.setText("Time: " + dateFormat.format(date))
在所有情况下,最好使用TryParse来处理任何格式错误。

您可以明确地使用和/或传递区域性:

Date date = new Date(location.getTime());
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
mTimeText.setText("Time: " + dateFormat.format(date))
var enCulture = new System.Globalization.CultureInfo("en-us");
DateTime result = DateTime.ParseExact("30/05/2015", 
                                      "dd/MM/yyyy", 
                                       enCulture );
编辑:如果您正在动态更改区域性并将其存储在会话中,则此操作应能正常工作:

var userCulture = new System.Globalization.CultureInfo((string)Session["Language"]);
DateTime result = DateTime.Parse(TxtVehicleDestructionDateReturnedVehicle.Text, userCulture );
您可以明确使用和/或传递文化:

var enCulture = new System.Globalization.CultureInfo("en-us");
DateTime result = DateTime.ParseExact("30/05/2015", 
                                      "dd/MM/yyyy", 
                                       enCulture );
编辑:如果您正在动态更改区域性并将其存储在会话中,则此操作应能正常工作:

var userCulture = new System.Globalization.CultureInfo((string)Session["Language"]);
DateTime result = DateTime.Parse(TxtVehicleDestructionDateReturnedVehicle.Text, userCulture );

解决方案是,如果您在IIS上托管网站,或者如果您在本地工作,则在解析日期时应使用以下代码来调整IIS上的区域性属性:

DateTime.Parse(date,new CultureInfo("en-GB",false));
如果这对您有效,您可以将此区域性设置为母版页上的默认区域性

另一种解决方案是拆分日期文本,并将每个拆分的部分放入其相应的日期部分中,例如,对于该日期“2015年5月30日”:


解决方案是,如果您在IIS上托管网站,或者如果您在本地工作,则在解析日期时应使用以下代码来调整IIS上的区域性属性:

DateTime.Parse(date,new CultureInfo("en-GB",false));
如果这对您有效,您可以将此区域性设置为母版页上的默认区域性

另一种解决方案是拆分日期文本,并将每个拆分的部分放入其相应的日期部分中,例如,对于该日期“2015年5月30日”:

试用

Convert.ToDateTime(TxtVehicleDestructionDateReturnedVehicle.Text, CultureInfo.GetCultureInfo("en-GB"));

试用

Convert.ToDateTime(TxtVehicleDestructionDateReturnedVehicle.Text, CultureInfo.GetCultureInfo("en-GB"));


请注意,它不是DateTime.Parse,它的Convert.ToDateTime(…)请注意它不是DateTime.Parse,它的Convert.ToDateTime(…)请注意,问题是针对c#、asp.net和ajax的,正如它的标记所指出的那样。在提供答案时,您可能对问题进行了错误分类。请注意,该问题是针对c#、asp.net和ajax的,正如其标记所指出的那样。在提供答案时,您可能对问题进行了错误分类。