C# Extension Method: DateTimeOffset - ConvertTimeBySystemTimeZoneId

CSharp · Console

/Program.cs

// C# Extension Method
// Doc: https://csharp-extension.com/en/method/1002276/datetimeoffset-converttimebysystemtimezoneid

// @nuget: Z.ExtensionMethods

using System;
					
public class Program
{
	public static void Main()
	{
        // Define times to be converted.
        DateTime time1 = new DateTime(2018, 1, 1, 12, 1, 0);
        DateTime time2 = new DateTime(2018, 11, 6, 23, 30, 0);
        DateTimeOffset[] times = { new DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset(time1)),
                             	   new DateTimeOffset(time1, TimeSpan.Zero),
                                   new DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset(time2)),
                                   new DateTimeOffset(time2.AddHours(3), TimeZoneInfo.Local.GetUtcOffset(time2.AddHours(3))) };

        // Display the current time zone name.
        Console.WriteLine("Local time zone: {0}\n", TimeZoneInfo.Local.DisplayName);

        // Convert each time in the array.
        foreach (DateTimeOffset timeToConvert in times)
        {
			// C# Extension Method: DateTimeOffset - ConvertTimeBySystemTimeZoneId
            DateTimeOffset targetTime = timeToConvert.ConvertTimeBySystemTimeZoneId("Tokyo Standard Time");
            Console.WriteLine("Converted {0} to {1}.", timeToConvert, targetTime);
        }
	}
}
;