0

我有两个文本框,第一个我有这种格式的日期:2012.09.20,第二个我有这种格式的时间:15:30:00。在数据库中,我有列名“Eventstart”类型:DateTime。现在我喜欢从两个文本框中取值并将它们放在这样的地方:

DateTime end = Convert.ToDateTime(TextBoxEnd.Text) + Convert.ToDateTime(TextBoxTimeEnd.Text);

但是给我这个错误:错误2运算符'+'不能应用于'System.DateTime'和'System.DateTime'类型的操作数

4

4 回答 4

4

听起来你应该使用:

DateTime date = Convert.ToDateTime(TextBoxEnd.Text);
DateTime time = Convert.ToDateTime(TextBoxTimeEnd.Text);
DateTime combined = date.Date + time.TimeOfDay;

或者你可以结合文本然后解析:

DateTime dateTime = Convert.ToDateTime(TextBoxEnd.Text + " " +
                                       TextBoxTimeEnd.Text);

我不确定我是否会使用Convert.ToDateTime- 如果您知道文本框的确切格式,您应该使用DateTime.TryParseExact. 不过,您应该确定在这种情况下使用哪种文化。如果它是真正固定的精确格式,CultureInfo.InvariantCulture可能是合适的。如果它是特定于文化的格式,则使用用户的文化。

您可能还想使用根本不使用文本框的替代 UI 表示,这将避免潜在的麻烦字符串转换。

于 2012-09-20T12:10:36.650 回答
2

连接您的 TextBoxes 文本并将DateTime.ParseExact与格式一起使用"yyyy.MM.dd HH:mm:ss"

连接文本后,您应该有:"2012.09.20 15:30:00"

DateTime dt = DateTime.ParseExact(TextBoxEnd.Text + " " + TextBoxTimeEnd.Text, 
                                  "yyyy.MM.dd HH:mm:ss", 
                                  CultureInfo.InvariantCulture);
于 2012-09-20T12:11:52.750 回答
0

你有没有尝试过类似的东西

DateTime end = Convert.ToDateTime(TextBoxEnd.Text) + TimeSpan.Parse(TextBoxTimeEnd.Text);
于 2012-09-20T12:12:24.910 回答
0

首先连接两个值,然后将其添加到 DateTime 变量

例子:

string str = date.Text + time.Text;  // assumed date and time are textboxes

DateTime dt=new DateTime();
DateTime.TryParse(str,dt); // returns datetime in dt if it is valid
于 2012-09-20T12:10:28.333 回答