你怎么全球定的日期格式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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top