タイムゾーンの世界は、多くの場合、.NET開発の課題を提示し、2つの主要なシステムがWindowsタイムゾーンとIANAタイムゾーンです。 Windowsゾーンはオペレーティングシステムに不可欠であり、IANAゾーンはインターネットアプリケーションの標準です。 これには、特にIANAタイムゾーン識別子に依存しているAPIと相互作用する場合、これら2つのシステムを橋渡す方法が必要です。
Modern .NETアプローチ(.NET 6以降): 必要なタイムゾーンデータとICU(Unicode用の国際コンポーネント)がインストールされている場合、
.NET 6および後続のバージョンは、必要なタイムゾーンデータとICU(国際コンポーネント)がインストールされている場合に、組み込みのサポートを提供します。 これにより、変換プロセスが大幅に簡素化されます 古い.NETバージョン用のソリューション:ネイティブサポートがない古い.NETバージョンの場合、TimeZoneConverterライブラリは堅牢なソリューションを提供します。 このライブラリは、Unicode CLDRプロジェクトの
ファイルを使用して、2つのシステム間をマッピングします。windowsZones.xml
実用的な例:
TimeZoneConverterライブラリは、使いやすい変換方法を提供しています
Windows-to-Aianaマッピングの理解:
<code class="language-csharp">string tz = TZConvert.IanaToWindows("America/New_York"); // Returns: "Eastern Standard Time" string tz = TZConvert.WindowsToIana("Eastern Standard Time"); // Returns: "America/New_York" string tz = TZConvert.WindowsToIana("Eastern Standard Time", "CA"); // Returns: "America/Toronto"</code>
WindowsからIanaゾーンへのマッピングは、常に1対1ではないことに注意することが重要です。 単一のWindowsタイムゾーンは、いくつかのIANAゾーンにマッピングできます。 TimeZoneConverterは、そのような場合、デフォルトは「Golden Zone」(CLDRの「001」とマークされています)になります。 ただし、コンバージョンを改善し、より正確なIANA同等物を取得するために、上記の例のカナダの「CA」などの国コードを指定できます。
以上が.NETの窓とIANAのタイムゾーンを橋渡しするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。