2017-04-21 68 views
0

我在C#中有一个WinForm应用程序。在Program.cs文件中,我通过Web API获取数据库服务器的时间。从服务器连续更新的应用程序级DateTime值

在这里,我想访问这些数据库服务器时间与更新值时,我访问它横跨多种形式进行各种操作。

对于实例:在我得到Program.cs中的数据库服务器时间点是:2017-04-21 13:00:00。当我在120秒后在主窗体中访问此值时,它应该是2017-04-21 13:02:00

而且,在300秒后,当我从另一个表单访问相同的值。它应该是2017-04-21 13:07:00

+2

所以你基本上只需要创建一个把它从服务器得到,并将其与当前的时间,并增加了时间跨度其间的时间的方法服务器时间? – Webbanditten

+0

你特别想从sql server中得到时间吗?在sql查询中使用GetDate()? – Milney

回答

3

您需要存储本地时间和数据库时间之间的差异。每次你访问当前时间,你应该应用区别:

class YourClass 
{ 
    TimeSpan timeDiff; 

    public void SetServerTime(DateTime serverTime) 
    { 
     timeDiff = serverTime - DateTime.Now; 
    } 

    public DateTime ServerTime => DateTime.Now.Add(timeDiff); 
} 
+0

感谢您的回答。让我试试这个 –

+0

@BalagurunathanMarimuthu,如果它适合你,一定要把它标记为接受。 –

+0

它按照我的预期工作。但是,如果我的web API请求延迟几秒钟,如何处理...?例如:如果我的web api请求获取数据库服务器时间:'2017-04-21 13:00:00'。如果我在延迟15秒之后得到回应......它仍然与'2017-04-21 13:00:00'相同。但我的服务器时间是'2017-04-21 13:00:00'。 –

相关问题