6 ноября 2011 г. в 2 часа ночи (EST, например, в Нью-Йорке) было 3 часа ночи согласно летнее время.
Кто-нибудь знает, почему функция TimeZoneInfo.ConvertTime
из .NET framework возвращает следующее:
var tzi = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var f = "yyyy/MM/dd HH:mm:ss";
TimeZoneInfo.ConvertTime(new DateTimeOffset(2012, 11, 3, 11, 0, 0, TimeSpan.Zero), tzi).ToString(f);
"2012/11/03 07:00:00"
TimeZoneInfo.ConvertTime(new DateTimeOffset(2012, 11, 4, 11, 0, 0, TimeSpan.Zero), tzi).ToString(f);
"2012/11/04 06:00:00"
TimeZoneInfo.ConvertTime(new DateTimeOffset(2012, 11, 6, 11, 0, 0, TimeSpan.Zero), tzi).ToString(f);
"2012/11/06 06:00:00"
TimeZoneInfo.ConvertTime(new DateTimeOffset(2012, 11, 7, 11, 0, 0, TimeSpan.Zero), tzi).ToString(f);
"2012/11/07 06:00:00"
Кажется, что изменение времени произошло 4 ноября, что не имеет смысла, поскольку оно произошло 6-го.
Редактировать: вау, это на мне. Я использовал 2012 год вместо 2011 года в своем коде.