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