日期时间格式与文化不匹配

时间:2015-01-30 18:20:16

标签: c# asp.net datetime locale

我有一个Windows Server 2008 R2系统配置了默认的区域设置(没有覆盖格式或任何内容),并且它设置为en-US。

当我询问以下内容时:   System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat

它将DateSeparator列为 - (破折号)而不是 / (斜杠)。所以DateTime.Now.ToString()看起来像:

2015年1月30日

此外,CurrentThread.CurrentCulture.ToString()=" en-US"

我完全不知道如何做到这一点,但更重要的是,我想知道.NET是否有某种语言环境覆盖,可以某种方式配置?

系统区域&语言设置正常且尚未更改。非常感谢任何帮助,谢谢。

以下是诊断信息的代码。它是在asp.net页面上的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/>
}

地区&amp;语言设置 Region and Language Settings

以下是一些其他信息 Diagnostic Information about DateTimeFormat

1 个答案:

答案 0 :(得分:2)

每个用户都有不同的区域配置文件。您当前的帐户和应用程序可能不会使用相同的帐户来查看不同的值。

转到地区设置窗口 - &gt;行政 - &gt;单击复制设置并勾选所有复选框(欢迎屏幕和系统帐户+新用户帐户),然后单击确定。看看它是否能解决您的问题。如果您的应用程序是Web应用程序,则需要创建另一个AppPool才能看到它受到影响。