1

日付のフィールドを持つフォームを持つ SL 5 アプリがあります。次のようなコードで、このフィールドのデフォルトの日付を設定します。

MyDate = System.DateTime.Today; 

または

MyDate = System.DateTime.Now.Date; 

次に、WCF Ria Service でデータを送信して、データをデータベースに保存します。

問題は、ユーザーのクライアント コンピュータと Web サーバーのタイム ゾーンが異なる場合、日付のデータが異なる値で保存されることです。

たとえば、今日は 2013 年 1 月 3 日です。フォームからデータをデータベースに保存すると、データは 2013 年 1 月 3 日 00 ではなく、2013 年 1 月 2 日 23:00:00 のように保存されます。 00:00。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

あなたは使用してみることができます

MyDate = DateTime.UtcNow

サーバーにutc時間を返す場合、すべての日時をutcとして保存するか、データベースに保存する前に操作できます(サーバーのローカル時間として保存されます)

于 2013-01-04T15:03:37.907 に答える
0

タイムゾーンの違いに加えて、クライアントとサーバーの間で実際の日付値が異なる場合もあります。

そのため、毎回サーバーから常に日付を取得するか、クライアントとサーバーの両方からアプリケーションの起動時に時刻を取得して、差の間隔を見つける必要があると思います。次に、差をローカルの日付値に加算して、サーバーの日時を計算する必要があります。

タイムゾーンの違いについては、常にUTC形式で作業する必要がありますが、もちろんローカルタイムゾーン形式として値をユーザーに表示する必要があります。

于 2013-01-04T20:54:00.560 に答える