2009-08-03 9 views
7

は、私は次のような署名何かを持つ関数を実装するために探しています現在のUTC時間を知っていることを考えれば、議論のために、「有効」とは、UTCに変換したときに、時間が+/- 30分であることを意味します。のTimeZoneInfoと国コード

たとえば、現在は03/08/2009 18:25:00 UTCと指定されていますが、オーストラリアに次のメソッド呼び出しがある場合、 "Eastern Standard Time"ゾーンの有効時間はtrueです。

IsTimeZoneValid("AU", DateTime.Parse("04/08/2009 03:25:00")); 

フランスの次の呼び出しは、フランスのタイムゾーンでは有効な時間ではないため、失敗するはずです。

IsTimeZoneValid("FR", DateTime.Parse("04/08/2009 03:25:00")); 

これが正確であることが必要であり、時間を節約し、アカウント夏時間に取るなど

.NET 3.5私は何時間帯を知っていれば私のための変換の多くを行うことができる新しいTimeZoneInfoクラスを含み特定の国に存在していますが、私はこのための組み込みルックアップを見つけることはできません。私は何かを見逃しているのですか?または、手動で国別のタイムゾーンマッピングのテーブルを作成する必要がありますか?

私の質問は次のとおりです。国コードを指定すると、どのようにタイムゾーンのリストを取得できますか?あるいは、私が逃したこのアプローチには別の方法がありますか?

+0

+1私も本当に特定の国のために有効なタイムゾーンを取得できるようにしたいと思います。 –

答えて

5

デフォルトでは、Windowsではローカルタイムゾーンの情報が追加されるだけで、問題の原因となっている可能性があります。

このクラスは、ローカルタイムゾーンおよび事前定義されたタイムゾーンでのみ機能します。これを他のタイムゾーンに使用する場合は、必要なすべてのタイムゾーンのレジストリ設定をマシンに追加するか、CreateCustomTimeZoneを使用してカスタムタイムゾーン情報を作成する必要があります。

http://msdn.microsoft.com/en-us/library/system.timezoneinfo.aspx?ppud=4 http://msdn.microsoft.com/en-us/library/bb384268.aspx

+0

デフォルトのIDの一覧: http://msdn.microsoft.com/en-us/library/bb397767.aspx – eschneider

+0

アイテムを読み込む:http://msdn.microsoft.com/en-us/library/bb397767.aspx – eschneider

関連する問題