Momentan sunteți offline, așteptați să vă reconectați la internet

Actualizare 2998527 provoacă cod incorect căutările anterioare date utilizând TimeZoneInfo în .NET Framework

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 3012229
Simptome
După 26 octombrie 2014, aplicațiile care sunt găzduite pe sistemele care au Rusă fusul orar din septembrie 2014 actualizarea)KB 2998527) instalat și care utilizează Microsoft .NET Framework poate se calculează timpul incorect când utilizează clasa TimeZoneInfo .

Această problemă se produce în următoarele fusuri orare:

  • (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) Moscova, St. Petersburg, Volgograd (RTZ 2)
  • (UTC + 05:00) Ekaterinburg (RTZ 4)
  • (UTC + 06:00) Novosibirsk (RTZ 5)
  • (UTC + 07:00) Krasnoiarsk (RTZ 6)
  • (UTC + 08:00) Irkutsk (RTZ 7)
  • (UTC + 09:00) Yakutsk (RTZ 8)
  • (UTC + 10:00) Magadan
  • (UTC + 10:00) Vladivostok, Magadan (RTZ 9)
  • (UTC + 13:00) Samoa
Cauză
Această problemă apare deoarece o modificare în deplasarea de bază al unui fus orar sfârşituri orice cod în fusuri orare afectate dacă acest cod Arată până trecut datele utilizând TimeZoneInfo în .NET Framework. Aceasta se întâmplă deoarece .NET Framework poate urmări modificările an la an în deplasarea de bază.

Această problemă a fost expus unor modificări recente din Rusia fusuri orare care sunt descrise în articolul din baza de cunoștințe Microsoft 2998527.

.NET Framework ignorate anterior decalajul UTC care este situat într-o regulă de ajustare intern. În schimb, se utilizează baza decalajul UTC în anumite calcule. .NET Framework, de asemenea, ignorate reguli ajustare care nu au tranzițiile de vară.
Stare
Această problemă a fost rezolvată nu numai în cel mai recent de lansare de .NET Framework, dar, de asemenea, în următoarele articole din baza de cunoștințe:

ID-ULTitluȚintăCustom 01articol din bază de cunoştinţe
1040166 [4.5.x] Fusul orar din Rusia modificările impact asupra .NET.NET Framework 4.5/4.5.1/4.5.2RESURSE UMANE-14113011110
1065448 [3.5] din Rusia fusul orar modificări impact asupra .NET.NET Framework 3.5 SP1RESURSE UMANE-14113013380
1065447 [4.0] din Rusia fusul orar modificări impact asupra .NET.NET Framework 4RESURSE UMANE-14113012132
1104556 [4.0] Rusă TZ actualizare lansează InvalidOperationException.NET Framework 4RESURSE UMANE-15023031985
1104557 [3.5] TZ din Rusia nereușite update test funcțional.NET Framework 3.5 SP1RESURSE UMANE-15023031989
1118018 Probleme de executare TimeZoneInfo [4.0] pe Server 2003 SP2.NET Framework 4RESURSE UMANE-15043057756
1083122 DTS: [4.5.2] incorecte rezultate atunci serializarea/de-serializing DateTime.NET Framework 4.5/4.5.1/4.5.2RESURSE UMANE-15023026376
1083123 DTS: [4.0] rezultate incorecte la serializarea/de-serializing DateTime.NET Framework 4RESURSE UMANE-15023031985
1087142 DTS: [3.5] rezultate incorecte la serializarea/de-serializing DateTime.NET Framework 3.5 SP1RESURSE UMANE-15023031989
1083122 OnDemand: Rusă TZ - Part2 - PND 4.5.1/4.5.2 RTM - Win8.1RTM/Win2K12R2RTM/WinRT8.1RTM - KB3018511.NET Framework 4.5/4.5.1/4.5.2OnDemand3018511

Informaţii suplimentare
Să luăm în considerare următorul exemplu codul C#:

  TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time");  DateTime dt = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(2013, 6, 1), tz);  Console.WriteLine(dt);
De exemplu, înainte de a aplica actualizarea KB 2998527, acest cod corect returnează data și ora ca 1 iunie 2013 la 04:00. După aplicarea actualizării, codul incorect returnează data și ora ca 1 iunie 2013 la 03:00.
remedieri rapide

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 3012229 - Ultima examinare: 06/20/2016 10:39:00 - Revizie: 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 KbMtro
Feedback
lementsByTagName("head")[0].appendChild(m);