2017-04-21 3 views
0

私はWinFormアプリケーションをC#に持っています。 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

現地時間とDB時間の差を保存する必要があります。ですから、基本的にはちょうどそれがサーバーからだと現在の時刻と比較しての中間にタイムスパンを追加し、時間がかかる方法を作成する必要があり

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:15'です。 –

関連する問題