2011-02-06 6 views
4

私は、日付をUTCに変換して元に戻すのに最も効果的な領域が不思議でした。 UTCで日付を保存し、ユーザーのローカルタイムゾーンに変換します。今は、リポジトリレイヤに配置するのが最も理にかなっていると思います。なぜなら、必要なサービスレイヤメソッドを作成するたびにそれを変換することを覚えておく必要がないからです。私のチームメイトは、それがビジネスルールなので、サービスレイヤーに置くことをお勧めします...どこに日付をUTCに変換するのですか?

これらの変換関数はどこに配置しますか?サービス層またはリポジトリ層?これには、オブジェクトのリストをループし、それぞれを変換することが含まれます。

答えて

8

これらの変換関数はどこに配置しますか?サービス層またはリポジトリ層?

いずれの層にもありません。私はそれをビューモデルに入れます。ビューにローカルタイムゾーンで日付を表示する必要があり、モデルの日付がUTCに格納されている場合、ビューモデルはビューに表示されているデータをフォーマットするのに最適な場所です。

+0

すべての日付は現地時間で表示されます。私は彼らがしない事例は考えられません。 – chobo

+0

はい、変換関数は、ビューから直接UTCでtimeパラメータを指定して呼び出す必要があります。関数自体をHtmlHelperとして保存することができるので、それを次のように使うことができます: '<%= Html.ConvertTime(utcDateTime、offset)%>' –

+0

同意。 Reposとドメインモデルの他の場所で、日付の比較が必要なロジックがあるかもしれません。これらのケースでは、UTCの日付ですべてのロジックを実行するのが最良です(そしてはるかに面倒です)。現地時間との間にユーザー(UI)の直下で翻訳を行います。 –

関連する問題