我有一个DateTime实例,我从数据库中获取,我想从DateTime.Now
中减去它,并查看是否已经过了4个小时。我该怎么做?
我应该何时使用DateTime.UTCNow
或DateTimeOffset
答案 0 :(得分:6)
您可以使用减法运算符来获取TimeSpan
:
private static readonly TimeSpan MinimumTime = TimeSpan.FromHours(4);
...
if ((dateFromDatabase - DateTime.Now) > MinimumTime)
{
...
}
至于您是否需要UTCNow
或Now
...它取决于从数据库中获取数据时时区会发生什么。 DateTime
在这方面并不十分清楚:(
如果您可以以DateTimeOffset
开头获取值,那么您可以使用DateTimeOffset.Now
代替,并且可以更简单地解决任何时区问题。
答案 1 :(得分:4)
首先是Google点击..
答案 2 :(得分:3)
试试这个:
bool fourHoursPassed = date.AddHours(4) < DateTime.Now;
或者这实际上执行减法:
bool fourHoursPassed = (DateTime.Now - date).TotalHours > 4;
答案 3 :(得分:1)
DateTime.Subtract
或
DateTime myDateTime = someValue;
TimeSpan ts = DateTime.Now -myDateTime;
if(ts.Hours>=4)
{
doSomething();
}
希望它有所帮助。
答案 4 :(得分:1)
DateTime dt = new DateTime(2011,07,10); DateTime dob = new DateTime(1987,07,10);
您可以简单地减去: TimeSpan年龄= dt - dob;