我想计算现在时间的检查时间并获取时间。
例如,我有一个字符串“时间”......
2013 年 6 月 6 日 07:23:06
和 DateTime.Now 我现在得到时间了。现在的问题是我无法计算差异:(
我在我的项目中需要它们,我从许可证服务器获取用户的时间,我想展示到现在的差异。我想在几个小时内显示这个。
您可以使用Parse
DateTIme 类的方法将字符串解析为日期并从现在开始减去。
TimeSpan diff = DateTime.Now - DateTime.Parse(dateString);
var hours = diff.Hours
上述示例当然要求日期采用特定格式。如果需要,您可以使用DateTIme.ParseExact并自己指定特定格式
您需要先将字符串转换为 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;
}
您可以使用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
等效形式。字符串表示的格式必须与指定的格式完全匹配,否则将引发异常。
你可以试试
DataTime diff = DateTime.Now - Convert.ToDataTime(dateString);
var hours = diff.Hours