我现在如何通过时间字符串和日期时间获得差异?

时间:2013-06-06 06:41:41

标签: c# asp.net string datetime time

我想计算现在的检查时间并获得时间。

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

Jun 06 2013 07:23:06

并使用DateTime.Now我现在得到时间。问题是现在我无法计算差异:(

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

4 个答案:

答案 0 :(得分:5)

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

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

上述例子当然要求日期为特定格式。您可以根据需要使用DateTIme.ParseExact并自行指定特定格式

答案 1 :(得分:3)

您需要先将字符串转换为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;

}

答案 2 :(得分:2)

您可以使用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字符串表示的格式必须   完全匹配指定的格式或抛出异常。

答案 3 :(得分:1)

你可以试试吗

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

var hours = diff.Hours