ホームページ >バックエンド開発 >C++ >.NETの窓とIANAのタイムゾーンを橋渡しするにはどうすればよいですか?

.NETの窓とIANAのタイムゾーンを橋渡しするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-29 18:41:13188ブラウズ

How Do I Bridge Windows and IANA Time Zones in .NET?

.NETでタイムゾーンの世界をナビゲートする:Windows vs. Iana

タイムゾーンの世界は、多くの場合、.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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。