Heim >Backend-Entwicklung >C++ >Wie kann man in .NET effizient zwischen Windows und Iana -Zeitzonen übertragen?
.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.
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>
.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").
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!