Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Cập Nhật 2998527 gây ra sai mã tra cứu qua ngày bằng cách sử dụng TimeZoneInfo trong Khuôn khổ .NET

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 3012229
Triệu chứng
Sau ngày 26 tháng 4 năm 2014, các ứng dụng được lưu trữ trên hệ thống có múi thời gian Nga tháng 4 năm 2014 Cập Nhật (KB 2998527) cài đặt chuyên biệt và sử dụng Microsoft Khuôn khổ .NET có tính thời gian không chính xác khi họ sử dụng lớp TimeZoneInfo .

Sự cố này xảy ra ở múi thời gian sau:

  • (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) Moscow, St Petersburg, Volgograd (RTZ 2)
  • (UTC + 05:00) Ekaterinburg (RTZ 4)
  • (UTC + 06:00) Novosibirsk (RTZ 5)
  • (UTC + 07:00) Krasnoyarsk (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
Nguyên nhân
Sự cố này xảy ra do thay đổi bù múi thời gian, cơ sở phá vỡ bất kỳ mã ở múi thời gian bị ảnh hưởng nếu mã nhìn lên qua ngày bằng cách sử dụng TimeZoneInfo trong Khuôn khổ .NET. Điều này là do Khuôn khổ .NET không thay đổi được theo dõi vào năm bù cơ sở.

Sự cố này xảy ra do thay đổi múi thời gian Nga được mô tả trong bài viết Cơ sở tri thức Microsoft 2998527 gần đây.

Khuôn khổ .NET đã bỏ qua bù UTC nằm trong quy tắc nội bộ điều chỉnh. Thay vào đó, nó sử dụng UTC bù cơ sở tính toán nhất định. Khuôn khổ .NET cũng bỏ qua các quy tắc điều chỉnh không có tiến trình chuyển đổi ánh sáng ban ngày.
Tình trạng
Sự cố này đã được giải quyết không chỉ trong những mới phát hành của Khuôn khổ .NET, mà còn trong các bài KB sau:

IDTiêu đềMục tiêuTuỳ chỉnh 01bài KB
1040166 [4.5.x] Ảnh hưởng đến việc thay đổi múi thời gian Nga trên .NETKhuôn khổ .NET 4.5/4.5.1/4.5.2HR-14113011110
1065448 Ảnh hưởng đến việc thay đổi múi thời gian Nga [3.5] trên .NETKhuôn khổ .NET 3.5 SP1HR-14113013380
1065447 Tác động thay đổi múi thời gian Nga [4.0] .NETKhuôn khổ .NET 4HR-14113012132
1104556 [4.0] Nga TZ Cập Nhật gây ra InvalidOperationExceptionKhuôn khổ .NET 4HR-15023031985
1104557 [3.5] Nga TZ Cập Nhật chức năng kiểm tra lỗiKhuôn khổ .NET 3.5 SP1HR-15023031989
1118018 [4.0] RU TimeZoneInfo vấn đề Server 2003 SP2Khuôn khổ .NET 4HR-15043057756
1083122 DTS: [4.5.2] kết quả không đúng khi serializing/de-serializing DateTimeKhuôn khổ .NET 4.5/4.5.1/4.5.2HR-15023026376
1083123 DTS: [4.0] kết quả không chính xác khi serializing/de-serializing DateTimeKhuôn khổ .NET 4HR-15023031985
1087142 DTS: [3.5] kết quả không chính xác khi serializing/de-serializing DateTimeKhuôn khổ .NET 3.5 SP1HR-15023031989
1083122 OnDemand: Nga TZ - phần 2 - gia 4.5.1/4.5.2 RTM - Win8.1RTM/Win2K12R2RTM/WinRT8.1RTM - KB3018511Khuôn khổ .NET 4.5/4.5.1/4.5.2OnDemand3018511

Thông tin thêm
Xem xét C# ví dụ mã sau:

  TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time");  DateTime dt = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(2013, 6, 1), tz);  Console.WriteLine(dt);
Ví dụ: trước khi bạn áp dụng bản Cập Nhật KB 2998527, mã này đúng trả về ngày và giờ là ngày 1 tháng 8 năm 2013 tại 04:00. Sau khi bạn áp dụng bản Cập Nhật, mã sai trả về ngày và giờ là ngày 1 tháng 8 năm 2013 tại 03:00.
hotfix

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 3012229 - Xem lại Lần cuối: 06/20/2016 11:52:00 - Bản sửa đổi: 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 KbMtvi
Phản hồi