O .NET possui o histórico de alterações de fuso horário?

Nosso governo gosta de alterar a hora local ou ativar | desativar o horário de verão.

A Microsoft implantou o patch para a Rússia para levar em consideração as novas mudanças de horário.

Agora, há a questão de saber se o histórico das mudanças existe?

Quando chego a hora UTC do dia no sistema 01.01.2000, lembre-se de que o fuso horário de Moscou tinha +3 UTC. (no verão +4) naquele momento.

Em 01.01.2012, tínhamos +4 UTC no inverno e no verão. E em breve teremos +3 UTC.

Um teste simples mostra que o .NET não mantém registros sobre as alterações:

var t = new DateTime(2012,1,1);
// UTC +4 expected
System.Console.WriteLine(t.ToLocalTime());
// UTC +4 expected
t = new DateTime(2012,06,1);
System.Console.WriteLine(t.ToLocalTime());
// UTC +3 expected
t = new DateTime(2000,1,1);
System.Console.WriteLine(t.ToLocalTime());
// UTC +4 expected
t = new DateTime(2000,6,1);
System.Console.WriteLine(t.ToLocalTime());

Existe alguma API adicional para lidar com o problema?

Atualizar:

Encontraram classeTimeZoneInfo e relacionadoAdjustmentRule classe. Esquerda para testar se a personalização deTimeZoneInfo.Local o fuso horário afeta as APIs do DateTime.

Atualização 2: Parece que os deslocamentos do UTC não são armazenados como histórico eAdjustmentRule altera apenas o horário de verão durante o ano.

questionAnswers(3)

yourAnswerToTheQuestion