我想计算现在的检查时间并获得时间。
我有一个字符串“time”,例如......
Jun 06 2013 07:23:06
并使用DateTime.Now我现在得到时间。问题是现在我无法计算差异:(
我在我的项目中需要它们,我从许可证服务器获取用户的时间,我想要显示现在的差异。我希望在几小时内显示出来。
答案 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