Les utilisateurs ont leurs fuseaux horaires stockés dans les profils ASP.NET sous forme de chaînes. Je veux utiliser ces fuseaux horaires UTC pour convertir pour un utilisateur donné:ASP.NET: Problèmes d'utilisation du fuseau horaire dans le profil pour convertir à partir de l'UTC
Dim timezoneFromProfile = HttpContext.Profile("TZ").ToString
Dim timezone = TimeZoneInfo.FromSerializedString(timeZoneFromProfile) ' FAIL
Dim convertedTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timezone)
Le problème est que TimeZoneInfo.FromSerializedString() attend son entrée à pas être juste une chaîne telle que:
(UTC-08: 00) heure normale du Pacifique (Etats-Unis & Canada)
Je sérialisation TimeZoneInfo dans le profil ASP.NET peut-être en utilisant XML de l'utilisateur, mais je suis amené à croire que l'utilisation de tout autre chose que des types simples tels que les chaînes et les entiers entraîne des performances médiocres en ce qui concerne les profils.
Quelle est la meilleure solution?
Je viens de comprendre et de me reconnecter pour répondre à ma propre question, mais vous m'avez battu! Comme vous le faites remarquer, l'astuce consiste à le stocker dans le Profil en tant qu'ID et non DisplayName. Merci. – royco