ホームページ >バックエンド開発 >C++ >.NETのWindowsとIANAのタイムゾーン間を効率的に翻訳する方法は?

.NETのWindowsとIANAのタイムゾーン間を効率的に翻訳する方法は?

DDD
DDDオリジナル
2025-01-29 18:31:15202ブラウズ

How to Efficiently Translate Between Windows and IANA Time Zones in .NET?

.NETタイムゾーン変換:Windows vs. IANA

.NETは、2つのシステムを使用してタイムゾーンを処理します:Windowsタイムゾーン(「東部標準時間」)とIANAタイムゾーン(例:「America/New_York」)。 IANAはインターネットAPIの標準ですが、多くの場合、2つの間の変換が必要です。

レガシーアプローチ:TimeZoneConverter Library

.NET 6の前に、ファイル(Unicode CLDRプロジェクトから)が変換の主要な方法でした。 ただし、制限により、

nugetパッケージが作成され、より信頼性の高いソリューションが提供されました。 windowsZones.xmlプロセスを単純化する方法は次のとおりです TimeZoneConverter

現代的なアプローチ:.NET 6以降

TimeZoneConverter.NET 6以降のバージョンは、必要なタイムゾーンデータとICU(Unicodeの国際コンポーネント)を備えたシステム上のWindowsとIANAタイムゾーンの両方に組み込みサポートを提供します。 これにより、直接変換が簡素化されます:

<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ゾーンにマッピングされる可能性があることに注意することが重要です。 デフォルトは「ゴールデンゾーン」(CLDR's "001")です。 別の一致を指定するには、国コードを使用します(「CA」を使用して

例に示すように)。

以上が.NETのWindowsとIANAのタイムゾーン間を効率的に翻訳する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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