2

WebアプリケーションにASP.NETMVC4を使用しており、すべてのデータベースアクセスはWCFサービスを介して行われます。ここで、システム内のすべての日付をユーザーのタイムゾーンで表示したいと思います。ユーザーのタイムゾーンはデータベースに保存され、ログイン時にCookieに保存されます。私が行っているのはコントローラーで、ユーティリティメソッドを呼び出し、すべての日時をユーザーのタイムゾーンに変換しています。これは正しい方法ですか?または、ビューでユーティリティメソッドを直接呼び出す必要がありますか?状況に対処するための最良の方法をアドバイスしてください。

4

2 に答える 2

1

理想的には、ユーティリティ メソッドはユーザーのタイム ゾーンで時刻を返す必要があります (ユーザーのタイム ゾーンを特定するのに役立つ引数を渡した後)。次に、コントローラー アクションまたはビジネス レイヤーから (またはビュー モデルにデータを入力している場所から) ユーティリティ メソッドを呼び出し、ビュー モデルの情報を使用してビューをレンダリングする必要があります。

于 2012-11-19T08:33:48.223 に答える
0

誰がアイテムを表示するかわからないため、常に UTC 日付をデータベースに保存してください。

収納する前に

var dbDate = myDate.ToUniversalTime();

そして、見るとき:

var userDate = dbDate.ToLocalTime();

SQL クエリなどを作成する前に、日付を UTC に変換することを忘れないでください。

MSDN: http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx

于 2012-11-19T08:39:22.473 に答える