Sto cercando di utilizzare DateTimeOffset
per trasmettere un momento specifico nel tempo in qualsiasi fuso orario. Non riesco a capire come utilizzare TimeZoneInfo
per affrontare l'ora legale.
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));
Questo stampa:
6/2/2010 16:37:19 6/2/2010 3:37:19 PM -06: 00
Mi trovo nel fuso orario centrale e attualmente siamo all'ora legale. Sto cercando di leggere la seconda riga:
6/2/2010 4:37:19 PM -05: 00
BaseUtcOffset
apparentemente non cambia in base all'ora legale.
Come posso ottenere il momento giusto con il valore di offset corretto?