すべてのDateTimeが常にサーバーの時刻であるアプリケーションがあります。それは1つのタイムゾーンを意味します。アイデアは、世界中のアプリケーションを互換性のあるものにすることです。最初のステップは、データベースに格納されているすべてのDateTimeをUTCに変換することです。これは問題ありません。第2のステップは、ユーザのためのタイムゾーン(ビジネスロジックに基づく)を想定し、ユーザ入力の表示と解析にデフォルトとして使用することです。さらに、DateTime.Nowや明示的なタイムゾーン/地域情報を持たないdatetimesを構築する他のメソッド呼び出しのようなメソッドでも、このタイムゾーン/地域が仮定されるといいでしょう。ビジネスロジックに設定されたユーザーあたりのデフォルトタイムゾーン
アイデアは、データベースのユーザーのタイムゾーンを想定することです。私はユーザーと彼のタイムゾーンを持っています、それは問題ありません。
問題はプレゼンテーションロジックです。これらのすべてのメソッドを変換するために、コードの上にDateTime.nowメソッドがあります。多くの作業です。
グローバルタイムゾーン設定が必要であることを避けるため、タイムゾーンはタイムゾーンを知っています。好ましくは一般的な場所にある。
class business logic
InitializeCulture()
set time zone for user
end function
end class
class presentation logic
sample()
TimeOfTheCurrentUser = DateTime.now
end function
end class
、そして、あなたはどのような言語/フレームワークを使用していますか? – Mat
質問:2番目のステップを達成する方法はあります "2番目のステップは、(ビジネスロジックに基づいて)ユーザーのタイムゾーンを想定し、ユーザー入力の表示と解析にデフォルトとして使用することです。タイムゾーン/地域情報が明示的に指定されていないdatetimesを構築するDateTime.Nowやその他のメソッド呼び出しのようなメソッドでも、このタイムゾーン/地域が想定されている場合に便利です。 言語/フレームワーク: VB .NET 3.5 – chrisdenarend
関連する質問:http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices – Oded