I have a windows service running (C#, .Net 2.0) on Windows 2003 R2. In one server the System.Threading.Thread.CurrentThread.CurrentCulture is {en-AU} and in the other {en-US}. This has caused a difference when calling ToString() on a datetime object. I want the Culture to be {en-AU}.
I checked the "Regional and Language Setting". In both servers the "Regional Options" tab shows "English (Asutralia)". But in the "Advanced" tab it shows "English (United States)" for one and "Enlish (Australia)" for the other. So this must be causing the difference. Although I want to know why exactly as the "Advanced" tab says "the language version of the non-unicode programs you want o use". I thought .Net processes were Unicode and should not be affected by this.
My question is how does the .Net runtime determine the culture to use. Any detailed reference would be helpful.