2010-12-17 2 views
1

コードビハインド:
DateTime.ToUniversalTime()でSQL Serverに日付を格納します。
その後、日付を読み取り、DateTime.ToLocalTime()と変換してからWebページに表示します。ASP.NETでは、どのようにGMTとの間で変換する必要がありますか?

Webサーバーがクライアントとはまったく異なるタイムゾーンにある場合、これは機能しません。すべての変換はWebサーバー上で行われています。コードビハインドでこれを試した結果、私はクライアントでそれを行う必要があると信じています。

ブラウザの現地時間がGMTとの間で正しく変換されるようにするには、どのような方法が適していますか?

答えて

1

1つの選択肢は、一般的なプロファイル情報でタイムゾーンについてユーザに尋ね、それをサーバ上で使用することです。

+0

+1最も簡単な解決法は、しばしば最高です –

+0

ありがとうございます。私は2つのタイムゾーンについて心配する必要があるので、これは私が取ったオプションです。すべての利用可能なキーを一覧表示するコンソールアプリケーションを作成してキーを取得しました。 – Blanthor

0

ほとんどの実装私は、現地時間が必要な場所をユーザがタイムゾーンを指定することに依存する必要がある場所を見てきました。これはサーバのプロファイルに保存され、提示された日付/時刻を調整するために使用されます。これは最も堅牢な方法のようです。代わりに、IPアドレス(GeoIPなど)を使用してユーザーの場所を設定し、それに応じて調整することもできます。これは、一部の企業がユーザーと地理的に位置していないゲートウェイを持つため、完全に信頼できるものではありません。

1

あなたが指定したサーバーのタイムゾーン(「12:00 pm中部時間」など)で時刻を表示するだけでなく、ユーザーが自分のプロファイルにタイムゾーンを指定させることができない場合は、javascriptを使用する必要があります時間を変換する。私はすべてのステップを通過する必要はありませんが、このページは、これを行うのは良いチュートリアルを持っている:

https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6016329.html

ユーザーのローカル時間を示すための好ましい方法は、それらが提供する持っているだろうことに注意してください自分のタイムゾーンをプロファイルに入れて、サーバー上でこの変換を行うことができます。

0

Googleのほとんどのブログは、.NETがクライアントのタイムゾーンを取得する方法を提供していないことを指摘しています。

しかしほとんどはどちらかと言う:

  1. は彼のタイムゾーンを入力するようユーザーに依頼して、データを表示するためにその情報を使用し

  2. 使用を分単位でオフセットブラウザのタイムゾーンを返すJavaScript関数とさらに処理するためにサーバーに送信します。参照:http://weblogs.asp.net/cprieto/archive/2010/01/03/handling-timezone-information-in-asp-net.aspx

関連する問題