2012-03-27 6 views
4

私が苦労してきたことは、.net 4(C#)のタイムゾーンのリストをプルダウンしてフォームのドロップダウンリストに値を設定することです。私はこれを行うことができます知っている:「ID」プロパティを持つのTimeZoneInfoクラスのタイムゾーンのリストを取得しますTimeZoneInfo.GetSystemTimeZones()を使用するときにWindowsタイムゾーンインデックスを取得します。

var TimeZoneList = TimeZoneInfo.GetSystemTimeZones(); 

。 IDはMicrosoftのタイムゾーンインデックスではありません。

たとえば、東部時間では、「Id」は単に内部標準のインデックスが「35」の「東部標準時」です。 (残りのインデックスはここにあります:http://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx

TimeZoneInfo.GetSystemTimeZones()からこれらのインデックスを取得する方法はありますか、それらを見つけるために私が呼​​び出せる他のメソッドがありますか?私は各IDをチェックしてインデックス値を一致させるためにスイッチのケースやif文を作ることができますが、もっと良い方法が必要だと思っています。

ありがとうございます!

+0

なぜあなたは知っている必要がありますか?インデックスを使用するものと相互運用する必要がある場合を除いて、Idを使用してタイムゾーンを識別して(再度取得する)ことをお勧めします。 –

+0

私はテーブルに数値インデックスを格納する既存のデータベース/アプリケーションへのWebフロントエンドを開発しています。広範なifステートメントを作成するだけでなく、データベース/アプリケーションのそのセクションがどのように機能するかを再設計するのはずっと難しいことです。 – Seril

+0

'if'文ではなく、確かに辞書を使うことができます。おそらく、レジストリからそれを移入することができます。 –

答えて

0

ちょっと古くなっていますが、this MSDN forum posting from 2008(.NET 3.5)は良いマッピングが存在しないことを示唆しています。また、あなたが指し示しているページからTimeZoneInfo IDからタイムゾーンIDまでの相互参照テーブルを作成する必要があります。

関連する問題