【问题标题】:How I can get the difference by time string and Datetime now?我现在如何通过时间字符串和日期时间来获得差异?
【发布时间】:2013-06-02 01:31:38
【问题描述】:

我想计算现在时间的检查时间并获取小时数。

例如,我有一个字符串“时间”...

2013 年 6 月 6 日 07:23:06

和 DateTime.Now 我现在得到了时间。现在的问题是我无法计算差异:(

我在我的项目中需要它们,我从许可证服务器获取用户的时间,我想展示到现在的差异。我想在几个小时内显示这个。

【问题讨论】:

标签: c# asp.net string datetime time


【解决方案1】:

您可以使用 DateTIme 类的Parse 方法将字符串解析为日期并从现在开始减去。

TimeSpan diff = DateTime.Now - DateTime.Parse(dateString);
var hours = diff.Hours

上述示例当然要求日期采用特定格式。如果需要,您可以使用 DateTIme.ParseExact 并自己指定特定格式

【讨论】:

    【解决方案2】:

    您需要先将字符串转换为 DateTime。在这里您有自定义格式,因此您可以使用 DateTime.ParseExact 或 DateTime.TryParseExact 方法,如下所示

    DateTime dt;
    if (DateTime.TryParseExact("Jun 06 2013 07:23:06", "MMM dd yyyy HH:mm:ss", CultureInfo.InvariantCulture,
            DateTimeStyles.None, out dt))
    {
        // get difference  
        var inDays = (DateTime.Now - dt).Days;
    
    }
    

    【讨论】:

      【解决方案3】:

      您可以使用TimeSpan.Hours 属性之类的;

      获取由 当前的 TimeSpan 结构。

      string dateString = "Jun 06 2013 07:23:06";
      var differenceHours = (DateTime.Now - DateTime.Parse(dateString)).Hours;
      Console.WriteLine(differenceHours);
      

      这里是DEMO

      如果要将自定义格式化字符串转换为DateTime,可以使用DateTime.ParseExact,它需要字符串和日期时间之间的精确格式匹配。

      将日期和时间的指定字符串表示形式转换为其 DateTime 等价物。 字符串表示的格式必须 完全匹配指定格式或抛出异常。

      【讨论】:

        【解决方案4】:

        你可以试试

        DataTime diff = DateTime.Now - Convert.ToDataTime(dateString);
        
        var hours = diff.Hours
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多