CSharp · Console
// 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);
}
}
}