Mise à jour 2998527 entraîne des recherches de code incorrectes sur des dates passées dans le.NET Framework à l’aide de TimeZoneInfo

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 3012229
Symptômes
Après le 26 octobre 2014, mettre à jour les applications qui sont hébergées sur des systèmes sur lesquels le fuseau horaire de la Russie septembre 2014 (KO 2998527) installé et qui utilisent le.NET Framework de Microsoft peut calculer le temps incorrectement lorsqu’ils utilisent la classe TimeZoneInfo .

Ce problème se produit dans les fuseaux horaires suivants :

  • (UTC-04:30). Caracas
  • (UTC + 01:00) Windhoek
  • (UTC + 02:00) Kaliningrad (RTZ 1)
  • (UTC + 02:00) Tripoli
  • (UTC + 03:00) Minsk
  • (UTC + 03:00) Moscou, St. Petersbourg, Volgograd (RTZ 2)
  • (UTC + 05:00) Iekaterinbourg (RTZ 4)
  • (UTC + 06:00) Novossibirsk (RTZ 5)
  • (UTC + 07:00) Krasnoyarsk (RTZ 6)
  • (UTC + 08:00) Irkoutsk (RTZ 7)
  • (UTC + 09:00) Iakoutsk (RTZ 8)
  • (UTC + 10:00) Magadan
  • (UTC + 10:00) Vladivostok, Magadan (RTZ 9)
  • (UTC + 13:00) Samoa
Cause
Ce problème se produit car une modification de l’offset d’un fuseau horaire de base interrompt tout code dans les fuseaux horaires concernés si ce code recherche des dates passées à l’aide de TimeZoneInfo dans le.NET Framework. C’est parce que le.NET Framework ne peut pas suivre les changements de-l’année de l’offset de base.

Ce problème a été exposé par les modifications récentes des fuseaux horaires russes sont décrites dans l’article 2998527 de la Base de connaissances Microsoft.

Le.NET Framework précédemment ignorés de l’offset d’UTC est défini dans une règle d’ajustement interne. Il utilisé à la place, l’offset UTC de base certains calculs. Le.NET Framework ignoré également les règles d’ajustement qui n’ont pas les transitions de l’heure d’été.
Statut
Ce problème a été résolu pas uniquement dans le plus récemment publié que du.NET Framework, mais également dans les articles suivants de la base de connaissances :

IDTitreCibleCustom 01Article de la base de connaissances
1040166 [4.5.x] Impact de modifications de fuseaux horaires russes sur .NET.NET Framework 4.5/4.5.1/4.5.2RH-14113011110
1065448 Impact des modifications [3.5] fuseau horaire russe sur .NET.NET Framework 3.5 SP1RH-14113013380
1065447 Impact des modifications [4.0] fuseau horaire russe sur .NET.NET Framework 4RH-14113012132
1104556 Mise à jour de [4.0] TZ russe lève InvalidOperationException.NET Framework 4RH-15023031985
1104557 Échecs de test fonctionnel de mise à jour TZ russe [3.5].NET Framework 3.5 SP1RH-15023031989
1118018 [4.0] problèmes RU TimeZoneInfo Server 2003 SP2.NET Framework 4RH-15043057756
1083122 DTS: [point 4.5.2] retourne des résultats incorrects lors de sérialiser/désérialiser-serializing DateTime.NET Framework 4.5/4.5.1/4.5.2RH-15023026376
1083123 DTS: [4.0] des résultats incorrects lors de sérialiser/désérialiser-serializing DateTime.NET Framework 4RH-15023031985
1087142 DTS: [3.5] des résultats incorrects lors de sérialiser/désérialiser-serializing DateTime.NET Framework 3.5 SP1RH-15023031989
1083122 À la demande : Russe TZ - partie 2 - NDP 4.5.1/4.5.2 RTM - Win8.1RTM/Win2K12R2RTM/WinRT8.1RTM - KB3018511.NET Framework 4.5/4.5.1/4.5.2À la demande3018511

Plus d'informations
Considérez le code exemple C# suivant :

  TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time");  DateTime dt = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(2013, 6, 1), tz);  Console.WriteLine(dt);
Par exemple, avant d’appliquer la mise à jour de la base de connaissances 2998527, ce code retourne correctement la date et l’heure au 1er juin 2013 à 04:00. Après avoir appliqué la mise à jour, le code renvoie à tort la date et l’heure au 1er juin 2013 à 03:00.
correctif logiciel

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 3012229 - Dernière mise à jour : 06/20/2016 06:22:00 - Révision : 3.0

Microsoft .NET Framework 4.6, Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 4.5.1, Microsoft .NET Framework 4.5, Microsoft .NET Framework 4.0, Microsoft .NET Framework 3.5, .NET Core 5.0

  • kbmt KB3012229 KbMtfr
Commentaires