Comment puis-je déterminer si une date est à l'Heure d'été pour un fuseau horaire dans .NET 2.0?
-
09-06-2019 - |
Question
Je suis sur .NET 2.0, qui s'exécute sous un niveau de Confiance Moyen (donc TimeZoneInfo et le Registre ne sont pas les options autorisées).Je demande de l'utilisateur pour les deux dates et un fuseau horaire, et aimerais vraiment être en mesure de déterminer automatiquement si j'ai besoin d'ajuster le fuseau horaire de l'heure d'été.
Ce n'est probablement même pas valide d'un scénario, à moins que j'ai quelques très robuste prise en charge, à la TimeZoneInfo, afin de différencier les différentes variétés de fuseaux Horaires dans la première place.
La solution
Dans .NET 2.0 vous avez le code vous-même.Elle implique la recherche de l'heure avancée lois dans les différentes régions et la construction que dans vos propres structures de données.Le problème est quelque peu simplifiée, si vous ne se soucient que d'un sous-ensemble des zones, par exemple seulement aux etats-unis, mais si vous avez besoin d'globale de tous les fuseaux horaires, vous avez beaucoup de travail à faire, et puis le code doit être mis à jour toutes les quelques années, lorsque la modification de la législation.Même le nouveau fuseau horaire objets dans la dernière version de .NET nécessitera des mises à jour de windows pour les garder correct que les lois changent.
Autres conseils
L' TZ Base de données est un domaine public de la base de données de fuseau horaire règles qui est très bien entretenu.Il existe également un format compilé pour les données qu'ils fournissent, et il y a beaucoup de bibliothèques pour lire les données compilées, comme celui-ci: ZoneInfo (tz base de données / Olson base de données) .NET API
Excellent le fuseau horaire de la bibliothèque ici: TZ4Net
Eh bien, depuis TimeZoneInfo
est exclu, vous n'allez probablement pas à trouver une solution dans le cadre lui-même (mais ne me citez pas moi).
Dans ce cas, avez-vous envisagé de reflectoring l' TimeZoneInfo
classe et utilisation ce que vous y trouvez?
@Dominique, J'ai vu, mais je préfère rester légal, et je suis assez sûr que l'information devrait être intégrée dans le cadre de toute façon, ou saisi à partir du registre dans certains sournois manière qui ne nécessite pas d'autorisations...