title: Convert UTC to Local with historic accuracy by country
body: <p>I have:</p>
  
  <ul>
  <li>A Country (for instance Namibia)</li>
  <li>A DateTime stored in UTC (Let's say 23 October 1955 12:01 PM)</li>
  </ul>
  
  <p>I want to write a function to translate the UTC datetime to local Namibian datetime with historic accuracy, taking into consideration daylight savings time.</p>
  
  <p>I can not use timezones as some countries actually move timezones (Namibia for instance falls under WAT (UTC+1) during winter and WAST (UTC+2) during summer.</p>
  
  <p>Any CSharp functions that can achieve this?  Bonus points if this can be achieved by only passing the country's two-letter country code (for instance "NA").</p>
  
  <p>The ideal function signature should be either:</p>
  
  <pre><code>public static DateTime UtcToLocal(this DateTime UtcDateTime, string CountryCode)
  </code></pre>
  
  <p>or</p>
  
  <pre><code>public static string UtcToLocal(this DateTime UtcDateTime, string CountryCode)
  </code></pre>
  
  <p>UPDATE</p>
  
  <p>As pointed out in the comments section below, some countries are bound to multiple TimeZones (US for instance).  So, the method signatures should rather look as follows:</p>
  
  <pre><code>public static DateTime UtcToLocal(this DateTime UtcDateTime, string TZ_Environment_ZoneName)
  </code></pre>