1

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

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

2013 年 6 月 6 日 07:23:06

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

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

4

4 回答 4

5

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

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

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

于 2013-06-06T06:45:11.907 回答
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;

}
于 2013-06-06T06:50:29.113 回答
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等效形式。字符串表示的格式必须与指定的格式完全匹配,否则将引发异常。

于 2013-06-06T06:46:35.510 回答
1

你可以试试

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

var hours = diff.Hours
于 2013-06-06T07:11:21.493 回答