Я пытаюсь использовать DateTimeOffset для передачи определенного момента времени в любом часовом поясе. Я не могу понять, как использовать TimeZoneInfo для работы с летним временем.
var dt = DateTime.UtcNow;
Console.WriteLine(dt.ToLocalTime());
var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var utcOffset = new DateTimeOffset(dt, TimeSpan.Zero);
Console.WriteLine(utcOffset.ToOffset(tz.BaseUtcOffset));
Это выдает:
6/2/2010 4:37:19 PM
6/2/2010 3:37:19 PM -06:00
Я нахожусь в центральном часовом поясе, и сейчас мы находимся в летнее время. Я пытаюсь прочитать вторую строку:
6/2/2010 4:37:19 PM -05:00
BaseUtcOffset, по-видимому, не изменяется на основе DST.
Как я могу получить нужное время с правильным значением смещения?
Спасибо.