.NET 2.0 の特定のタイムゾーンで特定の日付が夏時間であるかどうかを確認するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/44795

質問

私は .NET 2.0 を使用しており、中程度の信頼の下で実行しています (つまり タイムゾーン情報 およびレジストリはオプションとして使用できません)。ユーザーに 2 つの日付と 1 つのタイム ゾーンを要求しているのですが、DST に合わせてタイム ゾーンを調整する必要があるかどうかを自動的に判断できるようにしたいと考えています。

いくつかの情報がない限り、これはおそらく有効なシナリオですらない とても 堅牢なサポート、さすが タイムゾーン情報, 、そもそも、さまざまな種類のタイムゾーンをすべて区別するためです。

役に立ちましたか?

解決

.NET 2.0 では、これを自分でコーディングする必要があります。これには、さまざまな地域の夏時間法を調査し、それを独自のデータ構造に組み込むことが含まれます。タイム ゾーンのサブセットのみ (たとえば米国のみ) のみを考慮する場合、問題はいくらか単純化されますが、すべてのグローバル タイム ゾーンが必要な場合は、多くの作業を行う必要があり、コードを毎回更新する必要があります。法律が変わる数年後。最新バージョンの .NET の新しいタイム ゾーン オブジェクトでも、法律の変更に応じて正確さを保つために Windows の更新が必要になります。

見て ここ, ここ, 、 そして ここ 詳細については。

他のヒント

TZデータベース は、非常によく管理されているタイムゾーン ルールのパブリック ドメイン データベースです。提供されるデータにはコンパイルされた形式もあり、コンパイルされたデータを読み取るために利用できる次のようなライブラリが多数あります。 ZoneInfo (tz データベース / Olson データベース) .NET API

優れたタイムゾーンライブラリはこちら: TZ4ネット

まあ、それ以来 TimeZoneInfo が除外されている場合、おそらくフレームワーク自体で解決策を見つけることはできないでしょう (ただし、それについて私を引用しないでください)。

その場合、反映することを検討しましたか? TimeZoneInfo クラスに参加してそこで見つけたものを使用しますか?

@ドメニク, 、検討しましたが、合法でありたいと思います。いずれにせよ、情報をフレームワークに埋め込むか、アクセス許可を必要としない卑劣な方法でレジストリから取得する必要があると確信しています。 。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top