Estoy tratando de utilizar DateTimeOffset para transmitir un momento específico en el tiempo en cualquier zona horaria. No puedo entender cómo usar TimeZoneInfo para lidiar con el horario de verano.¿Cómo se usa TimeZoneInfo para obtener la hora local durante 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 muestra:
6/2/2010 4:37:19 PM
6/2/2010 3:37:19 PM -06:00
estoy en la zona horaria central, y y en este momento estamos en el horario de verano. Estoy tratando de obtener la segunda línea de la manera siguiente:
6/2/2010 4:37:19 PM -05:00
BaseUtcOffset aparentemente no cambia basado en el horario de verano.
¿Cómo puedo obtener el momento adecuado con el valor de compensación correcto?
+1 - Me vuelve loco que TimeZoneInfo.ConvertTimeBySystemTimeZoneId no solo trabaja para este :) –