Wie verwende ich TimeZoneInfo, um während der Sommerzeit lokale Zeit zu erhalten?

Ich versuche, DateTimeOffset zu vermitteln, einen bestimmten moment in der Zeit über jede Zeitzone. Ich kann nicht herausfinden, wie zu verwenden TimeZoneInfo, befassen sich mit Sommerzeit.

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));

Dieser druckt:

6/2/2010 4:37:19 PM
6/2/2010 3:37:19 PM -06:00

Ich bin in der central time zone, und wir sind derzeit in der Sommerzeit.
Ich bin versuchen, um die zweite Zeile zu Lesen:

6/2/2010 4:37:19 PM -05:00

BaseUtcOffset anscheinend nicht ändern basiert auf Sommerzeit.

Wie bekomme ich den richtigen Zeitpunkt mit der richtigen offset-Wert?

InformationsquelleAutor der Frage jaminto | 2010-06-02

Schreibe einen Kommentar