Estoy tratando de usar DateTimeOffsetpara transmitir un momento específico en el tiempo en cualquier zona horaria. No sé cómo usar TimeZoneInfopara lidiar con el horario de verano.
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));
Esto imprime:
2/6/2010 4:37:19 p.m. 2/6/2010 3:37:19 PM -06: 00
Estoy en la zona horaria central y actualmente estamos en el horario de verano. Estoy tratando de leer la segunda línea:
2/6/2010 4:37:19 PM -05: 00
BaseUtcOffset aparentemente no cambia según el horario de verano.
¿Cómo puedo obtener el momento adecuado con el valor de compensación adecuado?