using BetterConsoleTables;
public static void Main()
Table table = new Table("Time Zone Id", "Display Name", "Offset", "Offset Double");
var timeZones = TimeZoneInfo.GetSystemTimeZones().OrderBy(tz=>tz.Id);
foreach (var timeZone in timeZones)
TimeSpan offset = timeZone.BaseUtcOffset;
string offsetString = $"{(offset < TimeSpan.Zero ? "-" : "+")}{offset.ToString(@"hh\:mm")}";
double offsetHours = offset.TotalHours;
offsetHours = Math.Round(offset.TotalMinutes / 60.0, 1);
table.AddRow(timeZone.Id, timeZone.DisplayName, offsetString, offsetHours);
Console.Write(table.ToString());