Estoy tratando de usar DateTimeOffset
para transmitir un momento específico en el tiempo en cualquier zona horaria. No sé cómo usar TimeZoneInfo
para 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?