我有一个配置了默认区域设置(没有对格式或其他任何内容进行覆盖)并设置为en-US的Windows Server 2008 R2系统。
当我查询以下信息时:System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat,它将DateSeparator列为破折号(-)而不是斜杠(/)。因此,DateTime.Now.ToString()看起来像这样:01-30-2015。
同时,CurrentThread.CurrentCulture.ToString() = "en-US"。
我完全不知道这是如何可能的,但更重要的是,我想知道.NET是否具有可配置的某种区域设置覆盖?
系统的区域和语言设置是正常的,没有更改。非常感谢您的帮助。
以下是诊断信息的代码。它在aspx页面上运行,用于ASP.NET。
当我查询以下信息时:System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat,它将DateSeparator列为破折号(-)而不是斜杠(/)。因此,DateTime.Now.ToString()看起来像这样:01-30-2015。
同时,CurrentThread.CurrentCulture.ToString() = "en-US"。
我完全不知道这是如何可能的,但更重要的是,我想知道.NET是否具有可配置的某种区域设置覆盖?
系统的区域和语言设置是正常的,没有更改。非常感谢您的帮助。
以下是诊断信息的代码。它在aspx页面上运行,用于ASP.NET。
Current Date Time: <%= DateTime.Now.ToString() %>
Current Short Date: <%= DateTime.Now.ToShortDateString() %>
Current Culture: <%= System.Threading.Thread.CurrentThread.CurrentCulture.ToString() %>
Current UI Culture: <%= System.Threading.Thread.CurrentUICulture.ToString() %>
DateTimeFormatInfo invariant = CultureInfo.InvariantCulture.DateTimeForamat;
DateTimeFormatInfo uiThread = System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat;
DateTimeFormatInfo thread = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat;
Type type = System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat.GetType();
foreach( var prop in type.GetProperties()) {
<%= prop.Name %>
<%= prop.GetValue(invariant, null) %> <br/>
<%= prop.GetValue(uiThread, null) %> <br/>
<%= prop.GetValue(thread, null) %> <br/>
}
地区和语言设置
以下是一些额外信息