【问题标题】:How to get difference from 24 hours time format?如何从 24 小时时间格式中获得差异?
【发布时间】:2015-02-20 07:52:46
【问题描述】:

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

Time1=22:10
Time2=05:10

我需要的总时差为07:00

例如从10:10 pm05:10 am7 小时的差异。像这样询问如何查找它是否为 24 小时格式?

我怎样才能实现它?在 12 小时的情况下,我很好。但我不知道如何以 24 小时格式进行操作??它是一个网络应用程序。

【问题讨论】:

  • 当然可以设置一些属性,或者可以解析一些格式。在 github 上也可以查看 NodaTime
  • 您的问题是关于 12 小时格式,但您说 12 小时格式可以吗?你混淆了这两种情况吗?
  • 时差是7:00还是17:00?
  • @SelvaTS 我认为第二次总是比第一次晚。
  • 刚看到... "22:10 PM" 没有有效时间。它是 "10:10 PM""22:10"

标签: c# asp.net datetime timespan


【解决方案1】:

格式适用于您尝试获取DateTimeTimeSpan 的字符串表示形式。这两种类型实例之间的差异不会影响格式。

如果这些值是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 作为 Hour property

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

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

如果您有这样的 DateTime 值(我认为这些示例将与您的值相匹配,因为您想在 22:1005:10 之间获得 7 小时的差异)

DateTime dt1 = new DateTime(2015, 2, 21, 5, 10, 0);
DateTime dt2 = new DateTime(2015, 2, 20, 22, 10, 0);
TimeSpan result = dt1 - dt2;

result 将是 {07:00:00} 作为 TimeSpan 具有 7 作为 Hour 属性。

【讨论】:

  • 这实际上是一种有趣的方法,两次都是时间跨度。考虑到日期并不重要,这有点整洁。 :)
  • @Mario 是的,即使他们是DateTime,他们的减法结果也会是TimeSpan。由于TimeSpan时间间隔,因此即使我们对其进行格式化,它不能有任何AM/PM 部分。我们不能将中午之前或中午之后作为TimeSpan 值。
  • @SaraJohn 这些是Time1Time2DateTime 吗?我认为您的Time2Time1 之后的一天,因为您想获得7 小时作为差异。更新了我的答案。看看吧。
  • @Soner Gönül,它不是 DateTime 这个值我从 ccl 时间选择器获取
  • @SaraJohn 如果是string,你可以先用DateTimeTimeSpan 解析它们。两种类型都有Parse 方法。您可以查看他们的文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多