如何在ASP.NET中全局设置日期格式?

我的本地机器和服务器的区域设置为"英语(新西兰)".

例如,当我用dd/MM/yyyy设置日期格式时,我预计今天会看到19/11/2008.

直到最近,我从本地机器和服务器上都得到了这些信息.

就在最近,出于某种神秘的原因,我们当地的机器发生了微小的变化.尽管仍然设置为"英语(新西兰)",delimter的日期已从/改为-!同样的变化并没有发生在仍然显示"English(New Zealand)"和日期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;
}

Asp.net相关问答推荐

设置主键时KeyAttribute属性不起作用

在 ASP.Net 中使用自定义 RoleProvider 时如何允许多个角色查看页面

在 Sessions 中存储自定义对象

我可以在 .net 核心中使用 Entity Framework 6(非核心)吗?

iframe.readyState 在 chrome 中不起作用

更新到 ASP.NET Core 2.0 - 包与 netcoreapp2.0 不兼容

如果站点在 localhost 或 127.0.0.1 上运行,如何判断 ASP.NET MVC 视图

RestSharp 获取请求的完整 URL

解析 JSON 响应的最简单方法

什么相当于 ASP.NET 中的 cron 作业(job)?

最佳服务器端 .NET PDF 编辑库

为什么aspx文件会返回404(找不到页面)

回发后动态创建的控件丢失数据

禁用 web.config 继承?

IIS - 无法通过 ip 地址而不是 localhost 访问页面

好的 ASP.NET 类似 excel 的网格控件?

IronRuby死了吗?

System.Web.Caching 还是 System.Runtime.Caching 更适合 .NET 4 Web 应用程序

您将如何将 ASP.Net MVC 嵌入到现有的网站项目中?

新的 csproj 文件 struct 可以与 ASP.NET Framework 项目一起使用吗?