Heim >Backend-Entwicklung >C++ >Wie kann man in .NET effizient zwischen Windows und Iana -Zeitzonen übertragen?

Wie kann man in .NET effizient zwischen Windows und Iana -Zeitzonen übertragen?

DDD
DDDOriginal
2025-01-29 18:31:15201Durchsuche

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

.NET -Zeitzonenkonvertierung: Windows vs. Iana

.NET verarbeitet Zeitzonen mit zwei Systemen: Windows -Zeitzonen (z. B. "Eastern Standard Time") und IANA -Zeitzonen (z. B. "America/new_york"). Während Iana der Standard für Internet -APIs ist, ist häufig erforderlich, wenn die beiden zwischen den beiden konvertiert werden.

Legacy -Ansatz: TimeZoneConverter Library

Vor .NET 6 war die windowsZones.xml -Datei (aus dem Unicode -CLDR -Projekt) die primäre Methode für die Konvertierung. Einschränkungen führten jedoch zur Erstellung des TimeZoneConverter -Nuget -Pakets, was eine zuverlässigere Lösung bietet.

Hier ist, wie TimeZoneConverter den Prozess vereinfacht:

<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>

moderner Ansatz: .NET 6 und darüber hinaus

.NET 6 und spätere Versionen bieten integrierte Unterstützung sowohl für Windows- als auch für IANA-Zeitzonen in Systemen mit den erforderlichen Zeitzonendaten und der Intensivstation (internationale Komponenten für Unicode). Dies vereinfacht die direkte Konvertierung:

<code class="language-csharp">TimeZoneInfo windowsZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
TimeZoneInfo ianaZone = TimeZoneInfo.FindSystemTimeZoneById("America/New_York");</code>

Es ist wichtig zu beachten, dass eine einzige Windows -Zeitzone mehrere IANA -Zonen zugeordnet sein kann. Der Standard ist die "Goldene Zone" (CLDRs "001"). Verwenden Sie um eine andere Übereinstimmung mit einem Ländercode (wie im Beispiel TimeZoneConverter mit "CA").

gezeigt.

Das obige ist der detaillierte Inhalt vonWie kann man in .NET effizient zwischen Windows und Iana -Zeitzonen übertragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn