我有一个应用程序,它从datepicker获取日期,然后在屏幕上显示。它工作得很好,但在这个新的云服务器上,如果我在9月份选择一个日期,它显示为
09-Apr-2014 16:52至09-Jun-2014 16:52
什么时候应该
2014年9月4日至2014年9月6日
web.config中是否有设置我可以更改为使用欧洲日期设置制作应用程序?
答案 0 :(得分:0)
您需要在web.config中设置您的位置。否则,将使用操作系统默认值。
在ASP.NET网页中,您可以设置两个文化值,即Culture和UICulture属性。 “文化”值确定文化相关函数的结果,例如日期,数字和货币格式等。 UICulture值确定为页面加载的资源。
http://msdn.microsoft.com/en-us/library/vstudio/bz9tc508(v=vs.100).aspx
对于英国,我相信你的参赛作品将是
<globalization culture="en-GB"/>
答案 1 :(得分:0)
如果它是网络应用程序,您可以设置:
<system.web>
...
<globalization culture="de-CH" uiCulture="de-CH" requestEncoding="UTF-8" responseEncoding="UTF-8"/>
...
</system.web>
web.config文件中的。
或者您可以在aspx页面中添加内联脚本。
如果您没有源代码并且不想设置静态文化,这非常有用。
(例如,当您想要基于Request.QueryString参数而不是浏览器中设置的语言切换ReportServer.aspx的语言时):
<script type="text/C#" runat="server">
protected override void InitializeCulture()
{
string lang = "de-CH";
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(lang );
Thread.CurrentThread.CurrentUICulture = new
CultureInfo(lang );
}
base.InitializeCulture();
}
</script>
或者您可以在页面本身上静态设置文化
<%@ Page UICulture="de" Culture="de-CH" %>
请注意,如果您在web.config文件中设置了这种文化,那么由于某些原因这种特殊的麻烦有时并不会消失(当我在&#34; en-US&#34;瑞士国家广播公司的服务器。)
然后你需要创建一个新的基类并从System.Web.UI.Page继承,并且不允许在构造函数中使用override(,False)
Public MustInherit Class claPageBaseForm
Inherits System.Web.UI.Page
Protected Sub New()
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(System.Globalization.CultureInfo.CurrentCulture.Name, False)
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo(System.Globalization.CultureInfo.CurrentCulture.Name, False)
End Sub
C#代码,如果你需要它
public /* abstract */ class claPageBaseForm : System.Web.UI.Page
{
protected claPageBaseForm()
{
System.Threading.Thread.CurrentThread.CurrentCulture =
new System.Globalization.CultureInfo(System.Globalization.CultureInfo.
CurrentCulture.Name, false);
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo(System.Globalization.CultureInfo.
CurrentCulture.Name, false);
}
}
然后在您的网页代码隐藏中,您继承自基类而不是System.Web.UI.Page
partial class YourPage: claPageBaseForm
{
}
而不是
partial class YourPage: System.Web.UI.Page
{
}
这是打击它的最快方法,因为你可以在源代码中进行搜索和替换。
拥有一个共同的基页无论如何都很有用。
另外,请注意这个&#34;功能&#34;也可以影响类库(string.Format(Insert INTO TABLE WHATEVER '{0}', dateTime.ToString())
),因此在页面上设置它可能是不够的(如果当前日期<13,它甚至可能只是在数据库中保存垃圾,而不是返回一个错误 - 加上它也可以在select上检索垃圾!)
答案 2 :(得分:0)
实际上,默认使用浏览器指定的语言首选项可能会更好,这样您就可以根据用户偏好获得正确的文化。
<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/>