C# 如何从24小时时间格式中获得差异?

C# 如何从24小时时间格式中获得差异?,c#,asp.net,datetime,timespan,C#,Asp.net,Datetime,Timespan,我有两个时间(从时间选择器获取) 我需要的总时差为07:00 例如,从10:10 pm到05:10 am有7小时的差异。像这样,我问如何找到它是否是24小时格式 我怎样才能做到呢?12小时后我就没事了。但我不知道如何在24小时的格式呢??它是一个web应用程序。仅当您尝试获取日期时间或时间跨度的字符串表示形式时,格式化才适用。这两个类型实例之间的差异不会影响格式设置 如果这些值与TimeSpan类似 TimeSpan ts1 = new TimeSpan(22, 0, 0); TimeSpan

我有两个时间(从时间选择器获取)

我需要的总时差为
07:00

例如,从
10:10 pm
05:10 am
7小时的差异。像这样,我问如何找到它是否是24小时格式

我怎样才能做到呢?12小时后我就没事了。但我不知道如何在24小时的格式呢??它是一个web应用程序。

仅当您尝试获取
日期时间
时间跨度
的字符串表示形式时,格式化才适用。这两个类型实例之间的差异不会影响格式设置

如果这些值与
TimeSpan
类似

TimeSpan ts1 = new TimeSpan(22, 0, 0);
TimeSpan ts2 = new TimeSpan(7, 0, 0);
TimeSpan result = ts1 - ts2;
result
{15:00:00}
作为
TimeSpan
,其中
15
作为

顺便说一下,
AM/PM
格式仅适用于
DateTime
值,而不适用于
TimeSpan
TimeSpan
是一个时间间隔

比如,;对于
TimeSpan
值,我们不能说中午之前或中午之后,因为这根本没有意义

如果你有一个像这样的
DateTime
值(我认为这些示例将与你的值相匹配,因为你想得到
22:10
05:10
之间7小时的差异)

结果
{07:00:00}
作为
时间跨度
,它将
7
作为
Hour
属性

仅当您尝试获取
DateTime
TimeSpan
的字符串表示形式时,格式设置才适用。这两个类型实例之间的差异不会影响格式设置

如果这些值与
TimeSpan
类似

TimeSpan ts1 = new TimeSpan(22, 0, 0);
TimeSpan ts2 = new TimeSpan(7, 0, 0);
TimeSpan result = ts1 - ts2;
result
{15:00:00}
作为
TimeSpan
,其中
15
作为

顺便说一下,
AM/PM
格式仅适用于
DateTime
值,而不适用于
TimeSpan
TimeSpan
是一个时间间隔

比如,;对于
TimeSpan
值,我们不能说中午之前或中午之后,因为这根本没有意义

如果你有一个像这样的
DateTime
值(我认为这些示例将与你的值相匹配,因为你想得到
22:10
05:10
之间7小时的差异)



结果
{07:00:00}
作为
时间跨度
,它将
7
作为
Hour
属性

当然,您可以设置一些属性,或者解析一些格式。看看Github上的NodaTime,你的问题是关于12小时格式,但你说12小时格式可以吗?你混淆了这两种情况吗?时差是7:00还是17:00?@SelvaTS我想第二次总是比第一次晚。刚才看到了。。。“22:10 PM”不是有效时间。它不是“10:10pm”就是“22:10”。当然有一些属性可以设置,或者一些格式可以解析。看看Github上的NodaTime,你的问题是关于12小时格式,但你说12小时格式可以吗?你混淆了这两种情况吗?时差是7:00还是17:00?@SelvaTS我想第二次总是比第一次晚。刚才看到了。。。“22:10 PM”不是有效时间。要么是“晚上10:10”,要么是“22:10”。这实际上是一个有趣的方法,两种时间都是时间跨度。考虑到日期无关紧要,这有点整洁。:)@Mario是的,即使它们是
DateTime
它们的减法结果也是
TimeSpan
。因为
TimeSpan
是时间间隔,所以即使我们格式化它,它也不能有任何
AM/PM
部分。我们不能以
TimeSpan
值来表示中午之前或中午之后。@SaraJohn这些
Time1
Time2
值是
DateTime
?我想你的
Time2
是在
Time1
之后的一天,因为你想得到
7
小时作为一个差。更新了我的答案。看一看。@Soner Gönül,我从ccl time获取的这个值不是日期时间picker@SaraJohn如果它们是
string
,则可以首先使用
DateTime
TimeSpan
解析它们。这两种类型都有
Parse
方法。你可以查看他们的文档。这实际上是一个有趣的方法,两次都是时间跨度。考虑到日期无关紧要,这有点整洁。:)@Mario是的,即使它们是
DateTime
它们的减法结果也是
TimeSpan
。因为
TimeSpan
是时间间隔,所以即使我们格式化它,它也不能有任何
AM/PM
部分。我们不能以
TimeSpan
值来表示中午之前或中午之后。@SaraJohn这些
Time1
Time2
值是
DateTime
?我想你的
Time2
是在
Time1
之后的一天,因为你想得到
7
小时作为一个差。更新了我的答案。看一看。@Soner Gönül,我从ccl time获取的这个值不是日期时间picker@SaraJohn如果它们是
string
,则可以首先使用
DateTime
TimeSpan
解析它们。这两种类型都有
Parse
方法。你可以查看他们的文档。
DateTime dt1 = new DateTime(2015, 2, 21, 5, 10, 0);
DateTime dt2 = new DateTime(2015, 2, 20, 22, 10, 0);
TimeSpan result = dt1 - dt2;