我正在尝试将字符串转换为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);
然后我明白了:
答案 0 :(得分:2)
您遇到的问题很可能是格式问题的链接。由于DateTime有许多不同的格式化方式,Convert.ToDateTime( ... )
可能使用的格式与hour\minute
格式不同。
尝试使用DateTime.Parse
\ DateTime.TryParse
\ DateTime.ParseExact
请参阅:
有关格式化字符串的信息,请参阅Custom Date and Time Format Strings
答案 1 :(得分:0)
这可能是格式\本地化问题,不同的机器可能设置为不同的区域设置,并且期望日期的编写方式不同。
我认为你让自己陷入了不必要的麻烦之中。为什么首先创建字符串只是为了稍后解析它?做一些像 -
这样的事情会不会更容易date = new DateTime(date.year,date.month,date.day,HH,MM,SS);
来自控件的数据?