题
你怎么全球定的日期格式ASP.NET?
我当地机和服务器都具有区域设置的设定"的英语(新西兰)".
当我日期的格式与 dd/MM/yyyy
我期望看到的 19/11/2008
今天的例子。
直到最近,也就是什么我的确在事实上获得来自我的当地机和服务器。
就在最近,对于一些神秘的原因,我们的当地机已经改变了以往略有下降。尽管仍然被设定为"英语(新西兰)",日期delimter具有改变从 /
要 -
!同样的改变还没有发生在服务器,这仍然显示"英语(新西兰)"和 /
对于日期delimter.
所以现在我的地方机,对于的格式 dd/MM/yyyy
我得到 19-11-2008
而不是的 19/11/2008
.
这是一个有点令人不安。
唯一的办法解决它我可以看到这么远是逃跑的斜线并设置的格式 dd\/MM\/yyyy
.它似乎工作,但它似乎并不是理想的解决方案。
任何人都可以请有帮助吗?
注:这是一个内联网应用程序和我不关心真正的全球化。我只是想要解决的日期格式并没有改变我。
解决方案
你可以改变当前线文化全球性的。asax文件,并复盖该日期格式,例如:
using System.Globalization;
using System.Threading;
//...
protected void Application_BeginRequest(Object sender, EventArgs e)
{
CultureInfo newCulture = (CultureInfo) System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
newCulture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
newCulture.DateTimeFormat.DateSeparator = "-";
Thread.CurrentThread.CurrentCulture = newCulture;
}
其他提示
在网。配置、设置标签,作为每 以下文件
<system.web>
<globalization culture="en-NZ" uiCulture="en-NZ"/>
</system.web>
一个好办法是配置网。Config,日期格式出现在所有部件的aspx
<system.web>
<globalization uiCulture="en" culture="en-NZ" />
</system.web>
你可以设置文化没有操纵:
using System.Globalization;
using System.Threading;
//...保护空隙Application_BeginRequest(目的发送者、定引e)
{
螺纹。CurrentThread.CurrentCulture=线。CurrentThread.使=new默("en-新西兰");}
这是一个古老的职位,但我想这可能是有用的提到它在这里,我的问题是什么喜欢什么运要求,但解决的办法是,文化是改变在IIS,而不是从控制面板。
IIS有它自己的文化选择,它通过默认将遵循当地的计算机文化。但由于某些原因,它被改变为不同文化,我开始收到这些奇怪的日期格式。
你可以寻找更多的答案 在这里,.
对格式串的,该格式的性格/不实际解决字面"/"如你所期望的。相反,它可以解决当前的日期时间间隔作为配置在你的区域设置。尝试改变DateTimeFormatInfo.DateSeparator财产。
更多信息,见: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx