C# 在c中加入日期和时间#

C# 在c中加入日期和时间#,c#,datetime,C#,Datetime,我有一个win form c#SQL应用程序,它在一列中存储日期,在另一列中存储时间 我的表单上只有一个日期时间选择器,我希望同时显示日期和时间值(来自两个单独的列) 到目前为止,这就是我所做的 Datetime final = datetime. Parse exact (date + " " + time , "MM/dd/yyyy hh:mm tt", cultureinfo. Invariant culture); 但它会在上面的一行抛出“字符串未被识别为有效的日期时间”异常。您可以使

我有一个win form c#SQL应用程序,它在一列中存储日期,在另一列中存储时间

我的表单上只有一个日期时间选择器,我希望同时显示日期和时间值(来自两个单独的列)

到目前为止,这就是我所做的

Datetime final = datetime. Parse exact (date + " " + time , "MM/dd/yyyy hh:mm tt", cultureinfo. Invariant culture);

但它会在上面的一行抛出“字符串未被识别为有效的日期时间”异常。

您可以使用
TimeSpan.Parse
进行解析

DateTime newDateTime = date.Add(TimeSpan.Parse(time));

如果
date
time
DateTime
变量,则可以将它们与日期算术结合使用:

DateTime date=...;
DateTime time = ...;

DateTime finalDate = date.Date + time.TimeOfDay;
如果它们是字符串,则可以将它们解析为DateTime和TimeSpan变量:

DateTime date=DateTime.ParseExact(dateString,dateFormat,CultureInfo.InvariantCulture);
TimeSpan time = TimeSpan.ParseExact(timeString,timeFormat,CultureInfo.InvariantCulture);

DateTime finalDate = date.Date + time;
这是可能的,因为您可以添加DateTime和TimeSpan值以获得新的DateTime值

 string d = DateTime.Now.Date.ToString("dd/MM/yyyy");
 string t = DateTime.Now.ToString("h:mm"); 
 var ts = TimeSpan.ParseExact(t, @"h\:mm",CultureInfo.InvariantCulture);
 DateTime result = DateTime.ParseExact(d, "dd/MM/yyyy", CultureInfo.InvariantCulture)+ts;
希望这有帮助,
谢谢。

给出该错误的
date
time
的值是什么?请注意,“dd”格式需要两位数字,当可能有一位或两位时使用“d”(其他说明符也是如此)。日期和时间变量的值是什么?如果它们是DateTime,则使用本地区域性强制DateTime到字符串的转换,在您尝试使用不变文化解析回DateTime之前,您甚至可以使用class作为变量名,只要您使用DateTime@class:)C#@REZR.AMX的隐藏JAM,那么您为什么要解析它们?这可能也会失败,因为它假定时间字符串的特定格式仍然相同的字符串不是有效的日期时间例外谢谢你的回答。。。获得有价值的输入在处理日期和时间跨度时,没有理由转换或解析字符串。这就是问题的根源。顺便说一句,如果在使用“-”作为日期分隔符(如德语)的地区运行此代码,则会失败,因为它在转换和语法分析中混合了不同的文化背景亲爱的panagiotis Kanavos,这里需要进行语法分析。如果我提供带有特定分隔符的格式,这不起作用吗?然而,在这种情况下,没有必要投否决票。