3

私は英国出身で、最近 WinHost のBasic Packageに Web サイトを展開しました。

DateTime.Now()C# またはSQL で使用する場合GETDATE()、これらはどちらも次のようなものを返しGMT-8ます (サーバーが米国でホストされているため)。

サーバーのアクセス許可に関して少し制限があると思います (たとえば、SQL ログイン言語を変更できません)。

これらの日付を GMT に保存する最良の方法は何ですか?

4

3 に答える 3

4

DateTime.UtcNowデータベースのまま利用・保管。データベースから読み取るときは、クラスを使用して時間UTCに変換すると仮定します。SQL には、タイム ゾーン オフセットに関する情報を含めないでください。UKTimeZoneInfo

于 2012-04-25T08:51:36.293 に答える
3

SqlServer では、getUtcDate() を使用してすべての日時値を保存します。.NET アプリケーションで必要なタイムゾーンに変換できます。

于 2012-04-25T08:51:26.750 に答える
2

説明

DateTimes を UTC で保存する必要があると思います。次に、TimezoneInfo クラスを使用して別のタイムゾーンに簡単に変換できます。

  • DateTime.UtcNowデータベースに保存するか、 getUtcDateSQL 内で使用します
  • ユーザーに自分のタイムゾーンを選択させ、データベースに保存します
  • を使用して、保存した UTC 時間をユーザーのタイムゾーンに変換しますTimeZoneInfo.ConvertTimeFromUtc

サンプル

TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById(/* destination timezone (users timezone)  */);
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(YourDateTimeFromDatabase, cstZone);

詳しくは

于 2012-04-25T08:51:28.500 に答える