0

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

String was not recognized as a valid DateTime

我使用文本框来创建一个日期时间对象,如下所示:

在此处输入图像描述

我正在使用这条线来建立日期:

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);

然后我得到这个:

在此处输入图像描述

4

2 回答 2

2

您最有可能链接到格式问题的问题。由于 DateTime 有很多不同的格式化方式,Convert.ToDateTime( ... )可能使用的格式与您的hour\minute格式不同。

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

看:

有关格式化字符串,请参阅自定义日期和时间格式字符串

于 2013-07-30T17:14:49.373 回答
0
  1. 这可能是格式\本地化问题,不同的机器可能设置为不同的语言环境,并期望日期的写法不同。

  2. 我认为你让自己陷入不必要的麻烦。为什么首先创建字符串只是为了稍后解析它?做类似的事情不是更容易 -

    date = new DateTime(date.year, date.month, date.day, HH, MM, SS);

来自控件的数据?

于 2013-07-30T17:32:35.210 回答