2017-04-21 71 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'。 –

相關問題