Я использую DateTime.ToLocalTime ()
для преобразования дат из UTC в местное время. Мой часовой пояс GMT + 1 (Белград, Будапешт, Любна ...), он правильно установлен в настройках Windows (XP).
В прошлые выходные в нашем часовом поясе мы перешли с зимнего времени на летнее, то есть мы вернули местное время на один час назад.
Как я вижу, с этого момента метод ToLocalTime ведет себя странно. Когда я использую его для преобразования дат после зимнего изменения времени, он отлично работает, например:
var utcDate2 = new DateTime(2011, 11, 2, 9, 0, 0,DateTimeKind.Utc);
utcDate1.ToLocalTime ()
значение: 2011.11.02. 10:00:00
это правильно
Берт, когда я хочу преобразовать дату до этого изменения (например, дату из летнего времени), он возвращает неверное значение, подобное этому:
var utcDate1 = new DateTime(2011, 10, 23, 9, 0, 0,DateTimeKind.Utc);
utcDate2.ToLocalTime ()
значение: 2011.10.23. 10:00:00
неверно Должно быть 2011.10.23. 11:00:00
Что мне делать, чтобы получить правильные значения? Как мне использовать ToLocalTime, который также регулирует зимнее / летнее время?