title: Where is the system locale/culture set for .Net
body: <p>I have a problem with a c# assembly (.net 2.0 written using Visual studio 2005) that is installed on a UK server and should use UK regional settings.</p>
  
  <p>What my code does is to convert a date in the form dd/MM/yyyy into utc. i.e. yyyy-mm-dd. The problem arose with dates like 16/02/2010 where the component failed to convert the date and returned Error. After debugging I realised that, for a strange reason, the CultureInfo returned by System.CultureInfo is en-US.</p>
  
  <p>I can programatically change those settings using:</p>
  
  <pre><code>Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB", false); 
  </code></pre>
  
  <p>and my code works fine. </p>
  
  <p>However I don't want to do that all the time as my system should be UK. Not US. 
  So, how do I change the default culture for .Net framework to be by default en-GB instead of en-US ? </p>
  
  <p>For information:</p>
  
  <ul>
  <li>I have tried to update the machine.config file and specify culture=en-GB for the globalization section (it was set to neutral) but it doesn't work either [have done that for 1.1 and 2.0] but it's possible I have not changed it correctly.</li>
  <li>I have verified my windows regional settings and they are definitely set-up to UK with dates as dd/MM/yyyy </li>
  <li>I am running in a Virtual server and have verified my host system. It too is set to UK</li>
  </ul>
  
  <p><strong>Edit:</strong></p>
  
  <p>A bit of extra detail about the context. The assembly in question is being called via COM interop from a native C++ third party component that is running as a COM+ application.</p>