Le World of Timehages présente souvent un défi dans le développement .NET, avec deux systèmes principaux en jeu: les fuseaux horaires Windows et les fuseaux horaires IANA. Les zones Windows font partie intégrante du système d'exploitation, tandis que les zones IANA sont la norme pour les applications Internet. Cela nécessite un moyen de combler ces deux systèmes, en particulier lors de l'interaction avec les API qui s'appuient sur les identificateurs de fuseau horaire IANA.
Approche .NET moderne (.NET 6 et plus tard):
.NET 6 et les versions suivantes offrent une prise en charge intégrée pour les fuseaux horaires Windows et IANA, à condition que les données de fuseau horaire et les soins intensifs nécessaires (composants internationaux pour Unicode) soient installés. Cela simplifie considérablement le processus de conversion.
Solution pour les versions .NET plus anciennes:
Pour les versions .NET plus anciennes dépourvues de prise en charge native, la bibliothèque TimezonEconverter fournit une solution robuste. Cette bibliothèque utilise le fichier windowsZones.xml
du projet Unicode CLDR pour cartographier entre les deux systèmes.
Exemple pratique:
La bibliothèque TimezonEconverter propose des méthodes de conversion facile à utiliser:
<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>
Comprendre la cartographie Windows-to-Iadia:
Il est crucial de noter que la cartographie des zones Windows aux zones IANA n'est pas toujours individuelle. Un seul fuseau horaire Windows peut mapper à plusieurs zones IANA. TimezonEconverter, dans de tels cas, par défaut la "zone d'or" (marqué "001" dans CLDR). Cependant, vous pouvez spécifier un code de pays (comme "CA" pour le Canada dans l'exemple ci-dessus) pour affiner la conversion et obtenir un équivalent IANA plus précis.
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!