public static TimeZoneInfo FindSystemTimeZoneById (string id)
{
//FIXME: this method should check for cached values in systemTimeZones
if (id == null)
throw new ArgumentNullException ("id");
#if !MOBILE
if (TimeZoneKey != null)
{
if (id == "Coordinated Universal Time")
id = "UTC"; //windows xp exception for "StandardName" property
RegistryKey key = TimeZoneKey.OpenSubKey (id, false);
if (key == null)
throw new TimeZoneNotFoundException ();
return FromRegistryKey(id, key);
}
#endif
// Local requires special logic that already exists in the Local property (bug #326)
if (id == "Local")
return Local;
return FindSystemTimeZoneByIdCore (id);
}