Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换为DateTime时,字符串未被识别为有效的DateTime_C#_Asp.net_String_Datetime_Datetime Conversion - Fatal编程技术网

C# 转换为DateTime时,字符串未被识别为有效的DateTime

C# 转换为DateTime时,字符串未被识别为有效的DateTime,c#,asp.net,string,datetime,datetime-conversion,C#,Asp.net,String,Datetime,Datetime Conversion,我正在尝试将字符串转换为DateTime,然后将其插入sql。 在我的本地计算机上,一切正常,但在服务器上,应用程序引发异常: String was not recognized as a valid DateTime 我使用Textboxs创建一个日期时间对象,如下所示: act_event add_event = new act_event(); string start, end; DateTime strt_date = new DateTime();

我正在尝试将字符串转换为DateTime,然后将其插入sql。 在我的本地计算机上,一切正常,但在服务器上,应用程序引发异常:

String was not recognized as a valid DateTime
我使用Textboxs创建一个日期时间对象,如下所示:

 act_event add_event = new act_event();
        string start, end;
        DateTime strt_date = new DateTime();
        DateTime end_date = new DateTime();

        add_event.name = name_event.Text;

        start = startEventTB.Text + " " + ShourDD.SelectedValue + ":" + SminuteDD.SelectedValue;
        end = endEventTB.Text + " " + EhourDD.SelectedValue + ":" + EminuteDD.SelectedValue;

        strt_date = Convert.ToDateTime(start); //This is the line that throws the error
        add_event.start = strt_date;



        end_date = Convert.ToDateTime(end);
        add_event.end = end_date;

        add_event.description = des_event.Text;

        add_event.address = loc_event.Text;


        db.add_event(add_event);

我用这一行来建立日期:

start = startEventTB.Text + " " + ShourDD.SelectedValue + ":" + SminuteDD.SelectedValue;
        end = endEventTB.Text + " " + EhourDD.SelectedValue + ":" + EminuteDD.SelectedValue;
然后转换它

这是单击按钮后的代码:

 act_event add_event = new act_event();
        string start, end;
        DateTime strt_date = new DateTime();
        DateTime end_date = new DateTime();

        add_event.name = name_event.Text;

        start = startEventTB.Text + " " + ShourDD.SelectedValue + ":" + SminuteDD.SelectedValue;
        end = endEventTB.Text + " " + EhourDD.SelectedValue + ":" + EminuteDD.SelectedValue;

        strt_date = Convert.ToDateTime(start); //This is the line that throws the error
        add_event.start = strt_date;



        end_date = Convert.ToDateTime(end);
        add_event.end = end_date;

        add_event.description = des_event.Text;

        add_event.address = loc_event.Text;


        db.add_event(add_event);
然后我得到这个:

 act_event add_event = new act_event();
        string start, end;
        DateTime strt_date = new DateTime();
        DateTime end_date = new DateTime();

        add_event.name = name_event.Text;

        start = startEventTB.Text + " " + ShourDD.SelectedValue + ":" + SminuteDD.SelectedValue;
        end = endEventTB.Text + " " + EhourDD.SelectedValue + ":" + EminuteDD.SelectedValue;

        strt_date = Convert.ToDateTime(start); //This is the line that throws the error
        add_event.start = strt_date;



        end_date = Convert.ToDateTime(end);
        add_event.end = end_date;

        add_event.description = des_event.Text;

        add_event.address = loc_event.Text;


        db.add_event(add_event);

您遇到的问题很可能与格式问题有关。由于DateTime有许多不同的格式化方式,因此,
Convert.ToDateTime(…)
可能使用的格式与您的
hour\minute
格式不同

尝试使用
DateTime.Parse
\
DateTime.TryParse
\
DateTime.ParseExact

见:

有关设置字符串格式的信息,请参见

  • 这可能是一个格式化\本地化问题,不同的机器可能被设置为不同的语言环境,并且期望日期以不同的方式写入

  • 我认为你给自己带来了不必要的麻烦。为什么一开始创建字符串只是为了以后解析它?这样做不是更容易吗

    日期=新的日期时间(date.year、date.month、date.day、HH、MM、SS)


  • 使用控件中的数据?

    这就是为什么使用日期选择器而不是文本…我就是无法将日期选择器文本转换为日期时间,无论我使用ConvertTo、Parse、ParseExact。它只是抛出错误。这很烦人:\n我就是不能将datepicker文本转换为Datetime,不管我使用ConvertTo、Parse、ParseExact。它只是抛出错误。这很烦人:\datepicker的字符串文本是什么?你可以在上面的图片中看到它。
    31/07/2013
    DateTime sample=DateTime.ParseExact(“31/07/2013”,“dd/MM/yyyyy”,null)解析字符串在我的环境中
    DateTime示例=DateTime.ParseExact(“31/07/2013 8:15”,“dd/MM/yyyy h:m”,null)也可以工作