Ich versuche DateTimeOffset
, einen bestimmten Zeitpunkt in einer beliebigen Zeitzone zu vermitteln. Ich kann nicht herausfinden, wie ich TimeZoneInfo
mit der Sommerzeit umgehen soll.
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));
Dies druckt aus:
02.06.2010 16:37:19 Uhr 02.06.2010 15:37:19 -06: 00 Uhr
Ich bin in der zentralen Zeitzone und wir sind derzeit in der Sommerzeit. Ich versuche, die zweite Zeile zum Lesen zu bringen:
02.06.2010 16:37:19 -05: 00 Uhr
BaseUtcOffset
anscheinend ändert sich nicht basierend auf der Sommerzeit.
Wie kann ich mit dem richtigen Versatzwert den richtigen Zeitpunkt ermitteln?