有没有办法全局设置DateTime.ToString()格式?

San*_*dji 4 .net c#

我想知道有没有办法全局设置DateTime.ToString()格式?

让我们说我希望我的应用程序上的所有DateTime对象都被格式化为"yyyy-MM-dd".我可以通过从对象的每个实例调用.ToString("yyyy-MM-dd")来完成它.但我认为这似乎并不干净优雅.

我可以创建一个继承DateTime类并覆盖.ToString方法的新类,但我意识到DateTime是一个密封的类,我不能继承和修改它.这个问题有解决方法吗?

任何帮助将不胜感激!

Gyö*_*zeg 7

创建扩展方法.

public static string ToSortableString(this DateTime datetime)
{
    return datetime.ToString("yyyy-MM-dd");
}
Run Code Online (Sandbox Code Playgroud)


Ari*_*jee 6

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {    
      CultureInfo newCulture = (CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
      newCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
      newCulture.DateTimeFormat.DateSeparator = "-";
      Thread.CurrentThread.CurrentCulture = newCulture;
    }
Run Code Online (Sandbox Code Playgroud)

更改您的Global.asax文件中的当前线程区域性,它应该使其全局

要么

在web.config中将Globalization设置为:

<system.web>
<globalization  culture="en-NZ"  uiCulture="en-NZ"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)

所有国家代码列表