C# 如何在给定日期和时间的情况下获得TimeSpan

C# 如何在给定日期和时间的情况下获得TimeSpan,c#,.net,datetime,timespan,C#,.net,Datetime,Timespan,是否可以获得A和B的时间跨度,其中A(MM dd yyyy)=10-06-2015 23:45和B=9:00 AM。给定的数据格式与本文中的格式完全相同。我想我在格式化方面有困难,还没有编码工作 我还有一个问题可能与第一个问题有关,如果(A>B)可能吗?其中A(MM dd yyyy)=10-06-2015 23:45和B=9:00 AM。比较这两个数据可能吗 DateTime a = DateTime.ParseExact( "10-06-2015 23:45" , "MM-dd-yyyy H

是否可以获得A和B的时间跨度,其中A(MM dd yyyy)=
10-06-2015 23:45
和B=
9:00 AM
。给定的数据格式与本文中的格式完全相同。我想我在格式化方面有困难,还没有编码工作

我还有一个问题可能与第一个问题有关,如果(A>B)可能吗?其中A(MM dd yyyy)=
10-06-2015 23:45
和B=
9:00 AM
。比较这两个数据可能吗

DateTime a = DateTime.ParseExact( "10-06-2015 23:45"  , "MM-dd-yyyy HH:mm"   , CultureInfo.InvariantCulture );
DateTime b = DateTime.ParseExact( "10-06-2015 9:00 AM", "MM-dd-yyyy hh:mm tt", CultureInfo.InvariantCulture );
TimeSpan difference = a - b;
如果您只知道一天中的某个时间
b
,则此操作有效:

DateTime b = DateTime.ParseExact( "9:00 AM" "hh:mm tt", CultureInfo.InvariantCulture );
b = a.Date.Add( b.TimeOfDay );

TimeSpan difference = a - b;
您说您正在使用
日期时间选择器
,在这种情况下:

DateTime a = dateTimePicker1.Value;
DateTime b = a.Date.Add( dateTimePicker2.TimeOfDay );
TimeSpan difference = a - b;
用于此

这也会有帮助

例子:这样定义你的时间

startDate='10-06-2015'
startTime=10-06-2015 23:45:00 AM'

TimeSpan ts = startTime.TimeOfDay;
DateTime dt = startDate.Add(ts);

现在很好。。。哪里是
获取A和B的时间跨度,
@un幸运的是我没有引用一个例子,谢谢你指出!)@AishvaryaKarthik我猜这一个的输出类似于上面我的A的格式。但是,我的B的格式是固定的,从DateTime开始是上午9:00Picker@SuperPruuylan我道歉。我已经扩展了我的答案,以包括该场景。@SuperPruuylan说,如果您使用的是
DateTimePicker
,那么您根本不需要
ParseExact
,您可以直接使用该值。我会更新我的答案。让我问你一个问题,我的A=
10-06-2015 23:45
和B=
9:00 AM
。先生,如果(A>B),可以这样做吗?对不起,我不能给你贴标签name@SuperPruuylan可以,但是
B
必须包含日期和时间值,而不仅仅是时间值。查看我的代码,了解我是如何将
a
的日期部分添加到一天时间值的时间部分的。您是在询问a和B之间的差异吗?如果B和a在不同的日期呢?如果它已经通过了怎么办?你希望是负值,还是第二天?你需要它来考虑夏令时,如果是的话,在本地时区还是在任意时区?请编辑您的问题,使其更具体。一些输入和预期输出的例子会很有帮助。谢谢你的提示,先生。