public static void Main()
DateTime dt = Convert.ToDateTime("2019-10-16T17:00:00");
Print(dt, "*DateTime Without Offset*", false);
dt = Convert.ToDateTime("2019-10-16T17:00:00-5:00");
Print(dt, "\n\n*DateTime with Offset*", true);
private static void Print(DateTime dt, string print, bool isWithOffset)
Console.WriteLine(print + "\n");
Console.WriteLine("Input: " + dt);
Console.WriteLine("UTC without offset: " + dt.ToUniversalTime());
Console.WriteLine("Local without offset: " + dt.ToLocalTime());
private static void WithOffset(DateTime dt)
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
Console.WriteLine("Converted from CST to UTC: " + dt.ToUniversalTime());
Console.WriteLine("DateTime with Daylight Check: {0} {1}.", dt, cstZone.IsDaylightSavingTime(dt) ? cstZone.DaylightName : cstZone.StandardName);
private static void WithoutOffset(DateTime dt)
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
DateTime utcTime = TimeZoneInfo.ConvertTimeToUtc(dt, cstZone);
Console.WriteLine("Converted from CST to UTC: " + utcTime);
Console.WriteLine("DateTime with Daylight Check: {0} {1}.", utcTime, cstZone.IsDaylightSavingTime(utcTime) ? cstZone.DaylightName : cstZone.StandardName);