Maison > développement back-end > C++ > Comment traduire efficacement entre les fuseaux horaires Windows et IANA dans .NET?

Comment traduire efficacement entre les fuseaux horaires Windows et IANA dans .NET?

DDD
Libérer: 2025-01-29 18:31:15
original
218 Les gens l'ont consulté

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

.NET CONVERSION DES FONCES: Windows vs IANA

.NET gère les fuseaux horaires à l'aide de deux systèmes: fuseaux horaires Windows (par exemple, "Eastern Standard Time") et IANA Fuseaux horaires (par exemple, "America / New_york"). Alors que IANA est la norme pour les API Internet, la conversion entre les deux est souvent nécessaire.

Approche héritée: TimezonEconverter Library

Avant .net 6, le fichier windowsZones.xml (du projet Unicode CLDR) était la principale méthode de conversion. Cependant, les limitations ont conduit à la création du package TimeZoneConverter NuGet, offrant une solution plus fiable.

Voici comment TimeZoneConverter simplifie le processus:

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"
Copier après la connexion

Approche moderne: .net 6 et au-delà

.NET 6 et les versions ultérieures fournissent une prise en charge intégrée pour les fuseaux horaires Windows et IANA sur les systèmes avec les données de fuseau horaire et les soins intensifs nécessaires (composants internationaux pour Unicode). Cela simplifie la conversion directe:

TimeZoneInfo windowsZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
TimeZoneInfo ianaZone = TimeZoneInfo.FindSystemTimeZoneById("America/New_York");
Copier après la connexion

Il est important de noter qu'un seul fuseau horaire Windows pourrait mapper à plusieurs zones IANA. La valeur par défaut est la "zone d'or" ("001" de CLDR). Pour spécifier une correspondance différente, utilisez un code de pays (comme indiqué dans l'exemple TimeZoneConverter en utilisant "CA").

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal