Оновлення 2998527 викликає неправильний код пошуку в останні дні, за допомогою TimeZoneInfo .NET Framework

ВАЖЛИВО! Ця стаття перекладена засобами машинного перекладу Microsoft. Статтю можна редагувати в середовищі Community Translation Framework (CTF). Щоб якомога швидше перекласти всі статті у своїй базі знань різними мовами, компанія Microsoft не лише звертається до професійних перекладачів, але й вдається до машинного перекладу, який потім редагується спільнотою. Такі статті можуть містити лексичні, синтаксичні та граматичні помилки. Microsoft не несе відповідальності за будь-які неточності, помилки або збитки, до яких може призвести неправильний переклад статей або їх використання. Докладніше про CTF див. на веб-сторінці http://support.microsoft.com/gp/machine-translation-corrections/uk-ua.

Клацніть тут, щоб переглянути цю статтю англійською мовою: 3012229
Ознаки
Після 26 жовтня 2014 застосунки, які розміщені в системах, де вересня 2014 Росії часового поясу, оновлення (KB 2998527) інстальовано та яких використовується Microsoft .NET Framework може визначати Вільний час неналежним чином, під Вільний час роботи в TimeZoneInfo класу.

Ця проблема виникає в часових поясів на таке:

  • (UTC-04:30). Каракас
  • (UTC + 01:00) Віндгук
  • (UTC + 02:00) Калінінград (RTZ-1)
  • (UTC + 02:00) Триполі
  • (UTC + 03:00) Мінськ
  • (UTC + 03:00) Москва, Санкт-Петербург, Волгоград (RTZ 2)
  • (UTC + 05:00) Єкатеринбург (RTZ 4)
  • (UTC + 06:00) Новосибірськ (RTZ 5)
  • (UTC + 07:00) Красноярськ (RTZ 6)
  • (UTC + 08:00) Іркутськ (RTZ 7)
  • (UTC + 09:00) Якутськ (RTZ 8)
  • (UTC + 10:00) Магадан
  • (UTC + 10:00) Владивосток, Магадан (RTZ 9)
  • (UTC + 13:00) Самоа
причина
Ця проблема виникає в тому, що зміна зсув основний маркер часовий пояс порушує будь-який код у часових поясах, якщо цього коду шукає останніх дати за допомогою TimeZoneInfo .NET Framework. Це відбувається тому, .NET Framework, не відстежуються зміни року в рік основний маркер зсув.

Цю проблему було повідомив останні зміни, внесені в часових поясах Росії, описані у статті бази знань Майкрософт, 2998527.

.NET Framework, раніше ігнорується, установлений на внутрішній налаштування правила величина UTC. Замість того, він використовується базова величина UTC у певних розрахунки. .NET Framework, також ігноруються налаштування правила, які не мають переходи на літній.
Стан
Цю проблему не вирішено не тільки в з найбільш нещодавно випуску .NET Framework, а також в таких статтях бази Знань:

ІДЕНТИФІКАТОРНазваПризначенняНастроювана 01Стаття бази Знань
1040166 [4.5.x] Російська часового поясу вплив змін, на .NET.NET Framework 4.5/4.5.1/4.5.2УПРАВЛІННЯ ПЕРСОНАЛОМ І 14113011110
1065448 [3.5] Російська часового поясу вплив змін, на .NET.NET Framework 3.5 SP1УПРАВЛІННЯ ПЕРСОНАЛОМ І 14113013380
1065447 [4.0] Російська часового поясу вплив змін, на .NET.NET Framework 4УПРАВЛІННЯ ПЕРСОНАЛОМ І 14113012132
1104556 [4.0] Російська TZ, оновлення, викидає InvalidOperationException.NET Framework 4УПРАВЛІННЯ ПЕРСОНАЛОМ, 15023031985
1104557 [3.5] Російська TZ помилки оновлення функціональне випробування.NET Framework 3.5 SP1УПРАВЛІННЯ ПЕРСОНАЛОМ, 15023031989
1118018 [4.0] RU TimeZoneInfo питань Server 2003 SP2.NET Framework 4HR-15043057756
1083122 DTS: [4.5.2] неправильні результати, коли сериализации-de-serializing дати й часу.NET Framework 4.5/4.5.1/4.5.2УПРАВЛІННЯ ПЕРСОНАЛОМ, 15023026376
1083123 DTS: [4.0] неправильні результати коли сериализации-de-serializing дати й часу.NET Framework 4УПРАВЛІННЯ ПЕРСОНАЛОМ, 15023031985
1087142 DTS: [3.5] неправильні результати коли сериализации-de-serializing дати й часу.NET Framework 3.5 SP1УПРАВЛІННЯ ПЕРСОНАЛОМ, 15023031989
1083122 OnDemand: Російська-TZ - частина 2. - НДП 4.5.1/4.5.2, RTM - Win8.1RTM/Win2K12R2RTM/WinRT8.1RTM - KB3018511.NET Framework 4.5/4.5.1/4.5.2OnDemand3018511

Додаткові відомості
Розгляньмо наведений нижче C# зразок коду.

  TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time");  DateTime dt = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(2013, 6, 1), tz);  Console.WriteLine(dt);
Наприклад, перш ніж застосовувати оновлення KB 2998527, цей код правильно Повертає дату та Вільний час, 12 червня 2012 04:00. Після інсталяції оновлення, код неправильно Повертає дату та Вільний час, 12 червня 2012 03:00.
виправлення

Попередження. Цю статтю переведено автоматично

Властивості

Ідентифікатор статті: 3012229 – останній перегляд: 06/20/2016 11:51:00 – виправлення: 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 KbMtuk
Зворотний зв’язок