Я намагаюся використати, 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));
Це роздруковує:
02.06.2010 16:37:19 02.06.2010 15:37:19 -06: 00
Я перебуваю в центральному часовому поясі, і зараз ми переходимо на літній час. Я намагаюся отримати другий рядок для читання:
02.06.2010 16:37:19 -05: 00
BaseUtcOffset
мабуть, не змінюється на основі літнього часу.
Як я можу отримати правильний час із належним значенням зміщення?