public static void Main()
Console.WriteLine("-----");
Console.WriteLine("Basic TZ Check");
DateTime dtJan = new DateTime(2019,1,1,5,0,0);
Console.WriteLine("Using a base time of: " + dtJan);
Console.WriteLine("-----");
WriteTest("E. Australia Standard Time", dtJan);
WriteTest("AUS Eastern Standard Time", dtJan);
Console.WriteLine("-----");
Console.WriteLine("Basic TZ Check");
DateTime dt = new DateTime(2019,8,7,10,0,0);
Console.WriteLine("Using a base time of: " + dt);
Console.WriteLine("-----");
WriteTest("E. Australia Standard Time", dt);
WriteTest("AUS Eastern Standard Time", dt);
public static void WriteTest(string tz, DateTime dt){
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(tz);
Console.WriteLine("Begin Test for TZ: " + tzi.DisplayName + " AKA " + tz);
Console.WriteLine("TZ UTC Offset at base time: " + tzi.GetUtcOffset(dt));
DateTimeOffset newDto = new DateTimeOffset(dt, tzi.GetUtcOffset(dt));
Console.WriteLine("The UTC is: " + newDto.UtcDateTime);
Console.WriteLine("The Local Time is: " + TimeZoneInfo.ConvertTime(newDto.UtcDateTime.AddHours(5), tzi));
Console.WriteLine("This Time Zone is in Daylight Savings: " + tzi.IsDaylightSavingTime(newDto));
Console.WriteLine("-----");