2009-05-20 4 views
3

タイムゾーンAでホストされ、タイムゾーンBでユーザーによって使用されているASP.NETアプリケーションがあります.Webアプリケーション全体のタイムゾーンをBに設定する方法はありますか環境はAですか?私はすでに適切なuiCultureとcultureの値でweb.configのグローバリゼーションタグを設定していて、週やその他のローカライゼーション設定にはうまくいきますが、残念ながら時計を調整しませんでした:/私ができる最も簡単なことは私はDataTime.Nowを行うアプリケーションでは、タイムゾーンBの現在の時間を取得しないように調整を達成A. Thx。ASP.NETアプリケーションとローカルタイムゾーン

答えて

3

この変更を行う権限があると仮定します。 マシンのタイムゾーンをBに設定すると、アプリケーションのすべてのユーザーが同じタイムゾーンを共有していると仮定して私の提案になります。

それ以外の場合: UtcからのタイムゾーンBのオフセットを格納し、その組み合わせを使用しますが、夏時間の可能性がある問題の可能性があります。

+1

残念ながら、サーバーのタイムゾーン全体を変更することはできません。私が変更したいのは、IISの1つのWebサイトのタイムゾーンだけです。理想的には、web.configで設定を行う...文化/ローカリゼーション情報のように。 –

+1

いいえ、web.configにオフセットを格納し、そのオフセットを使用するようにDateTimeクラスを拡張して、 "MyDateTime.Now"が目的のタイムゾーンになるようにすることができます。 –

+1

残念ながら、ヨーロッパと米国で異なる時期に夏時間が発生するため、残念ながらそれはうまくいきません。/私はGMTオフセットを保存して、各操作を特定のタイムゾーンに調整する必要があることがわかります。あなたの答えをありがとう、私はいくつかのより多くの自動化されたソリューションがあることを望んでいた。 –

3

JavaScriptのDate.getTimezoneOffset() コールを使用してクライアントのタイムゾーンオフセット(分)をUTCから取得し、これを隠し入力フィールドを介してサーバーに戻します。

Serverside DateTime.UTCサーバー時刻をUTCで取得するために使用します。

Serverside DateTime.SpecifyKindを使用して、サーバーの現地時間と必要に応じてUTCを変換します。

+0

提案していただきありがとうございます。私はむしろクライアントとサーバーの対話を避けることにしました。私はこの情報をRequestから何とか掘り出すことができると確信しています。 –

0

最近、私が作っていたウェブサイトの視聴者のタイムゾーンを考慮する必要がありました。だから私はまずサーバーのUTC時間を取得し、ビューアーのタイムゾーンを追加しました(クライアント側のスクリプトを使って取得しました)。

私のコードでは、オフセットとして使用しました。

それは神の言い方がプログラムではありませんし、簡単で効率的ではありませんが、それは私にとって唯一の方法だと思われます。