public static string WindowsToIana(string windowsZoneId)
{
if (windowsZoneId.Equals("UTC", StringComparison.Ordinal))
return "Etc/UTC";
var tzdbSource = NodaTime.TimeZones.TzdbDateTimeZoneSource.Default;
TimeZoneInfo tzi;
try
{
tzi = TimeZoneInfo.FindSystemTimeZoneById (windowsZoneId);
}
catch (Exception)
{
tzi = TimeZoneInfo.Local;
}
if (tzi == null)
return null;
var tzid = tzdbSource.MapTimeZoneId(tzi);
if (tzid == null)
return null;
return tzdbSource.CanonicalIdMap[tzid];
}
}