0

.net の DateTime コンポーネントと混同しています。サーバーは UTC +4 で実行されており、クライアントは異なるタイムゾーンにあります。したがって、サーバーの時刻は UTC+4 モードです。クライアントに送信する前に UniversalTime にキャストして ToBinary に送信しようとしましたが、クライアント マシンではコードは次のようになります。

if ((Program.license.EndDate.ToUniversalTime() 
    - DateTime.Now.ToUniversalTime()).TotalMinutes <= 5)
{ 
    //dosomething 
}

まだ正しく動作しません。

ご協力ありがとうございました。

4

1 に答える 1

1

You have to know the DateType of the DateTime being sent from the client (Local, Universal, or Unspecified). If you try to cast an Unspecified type as universal, from what I understand, it will be handled as local time. (Someone please correct me if I am wrong.)

Best practice with server/client dates and times is to always use UTC. In .Net use DateTime.UtcNow instead of DateTime.Now.ToUniversalTime().

于 2012-09-13T17:47:50.930 に答える