私は .NET 2.0 を使用しており、中程度の信頼で実行しています (そのため、TimeZoneInfoとレジストリは許可されていません)。ユーザーに 2 つの日付と 1 つのタイム ゾーンを尋ねていますが、DST に合わせてタイム ゾーンを調整する必要があるかどうかを自動的に判断できるようにしたいと考えています。
そもそもTimeZoneInfoのように、さまざまな種類のすべてのタイム ゾーンを区別するための非常に堅牢なサポートがない限り、これはおそらく有効なシナリオではありません。
私は .NET 2.0 を使用しており、中程度の信頼で実行しています (そのため、TimeZoneInfoとレジストリは許可されていません)。ユーザーに 2 つの日付と 1 つのタイム ゾーンを尋ねていますが、DST に合わせてタイム ゾーンを調整する必要があるかどうかを自動的に判断できるようにしたいと考えています。
そもそもTimeZoneInfoのように、さまざまな種類のすべてのタイム ゾーンを区別するための非常に堅牢なサポートがない限り、これはおそらく有効なシナリオではありません。
ここの優れたタイムゾーン ライブラリ: TZ4Net
.NET 2.0 では、これを自分でコーディングする必要があります。これには、さまざまな地域の夏時間に関する法律を調査し、それを独自のデータ構造に組み込むことが含まれます。タイム ゾーンのサブセット (たとえば、米国のみ) のみを気にする場合、問題は多少単純化されますが、すべてのグローバル タイム ゾーンが必要な場合は、やるべきことがたくさんあり、コードを毎回更新する必要があります。法律が変わる数年。最新バージョンの .NET の新しいタイム ゾーン オブジェクトでさえ、法律の変更に合わせてそれらを正確に保つために Windows の更新が必要になります。
詳細については、ここ、ここ、およびここを参照してください。
TZ データベースは、よく管理されているタイムゾーン ルールのパブリック ドメイン データベースです。それらが提供するデータにはコンパイルされた形式もあり、次のようなコンパイルされたデータを読み取るために利用できるライブラリがたくさんあります: ZoneInfo (tz データベース / Olson データベース) .NET API
TimeZoneInfo
は除外されているため、おそらくフレームワーク自体で解決策を見つけることはできません (ただし、それについて引用しないでください) 。
その場合、TimeZoneInfo
クラスを反映して、そこで見つけたものを使用することを検討しましたか?
@ Domenic、私は考えましたが、私は合法であり続けることを望みます.とにかく情報をフレームワークに埋め込むか、アクセス許可を必要としない卑劣な方法でレジストリから取得する必要があると確信しています. ...