我想知道有没有办法全局设置DateTime.ToString()格式?
让我们说我希望我的应用程序上的所有DateTime对象都被格式化为" yyyy-MM-dd。"我可以通过从对象的每个实例调用.ToString(" yyyy-MM-dd")来完成它。但我认为这似乎并不干净优雅。
我可以创建一个继承DateTime类并覆盖.ToString方法的新类,但我意识到DateTime是一个我无法继承和修改的密封类。这个问题有解决方法吗?
任何帮助将不胜感激!
答案 0 :(得分:7)
创建扩展方法。
public static string ToSortableString(this DateTime datetime)
{
return datetime.ToString("yyyy-MM-dd");
}
答案 1 :(得分:5)
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;
}
更改Global.asax文件中的当前线程文化,并将其全局化
或者
将web.config中的Globalization设置为:
<system.web>
<globalization culture="en-NZ" uiCulture="en-NZ"/>
</system.web>
答案 2 :(得分:1)
public class DateFormatter
{
public DateFormatter()
{
}
public string FormatDate(DateTime date)
{
return date.ToString("yyyy-mm-dd");
}
}
然后在App.xaml.cs中创建此类的静态实例,如下所示
public static DateFormatter formatter = new DateFormatter();
在您的代码中,您将以此格式调用此类
textBox1.DataContext = App.formatter.FormatDate({your-datetime-variable});