public static class Program
public static void Main(string[] args)
var laTZ = TimeZoneLookup.GetTimeZone(34.0522, -118.243683).Result;
var tz = TimeZoneInfo.FindSystemTimeZoneById(laTZ);
var offset = tz.GetUtcOffset(DateTime.Now);
Console.WriteLine(offset);
Console.WriteLine(DateTime.Now.GetLocalPropertyTime(offset));
var nyTZ = TimeZoneLookup.GetTimeZone(40.7128, -74.0060).Result;
tz = TimeZoneInfo.FindSystemTimeZoneById(nyTZ);
offset = tz.GetUtcOffset(DateTime.Now);
Console.WriteLine(offset);
Console.WriteLine(DateTime.Now.GetLocalPropertyTime(offset));
var germanyTZ = TimeZoneLookup.GetTimeZone(51.1657, 10.4515).Result;
tz = TimeZoneInfo.FindSystemTimeZoneById(germanyTZ);
offset = tz.GetUtcOffset(DateTime.Now);
Console.WriteLine(offset);
Console.WriteLine(DateTime.Now.GetLocalPropertyTime(offset));
public static DateTime GetLocalPropertyTime(this DateTime dateTime, TimeSpan offset)
return DateTime.Now.Add(offset);