Mat*_*ood 35 c# format asp.net-mvc datetime
有没有办法为整个应用程序设置或覆盖默认的DateTime格式.我正在用C#.Net MVC 1.0编写一个应用程序,并使用很多泛型和反射.如果我可以将默认的DateTime.ToString()格式覆盖为"dd-MMM-yyyy",那会简单得多.当站点在不同的计算机上运行时,我不希望更改此格式.
编辑 - 只是为了澄清我的意思是专门调用ToString,而不是其他一些扩展函数,这是因为反射/生成代码.更改ToString输出会更容易.
Pao*_*sco 51
日期时间的"默认格式"是:
ShortDatePattern + ' ' + LongTimePattern
Run Code Online (Sandbox Code Playgroud)
至少在当前的单声道实现中.如果您想要显示类似2001-02-03T04:05:06Z的内容,即ISO 8606中指定的日期和时间组合,这会特别痛苦,但在您的情况下不是一个大问题:
using System;
using System.Globalization;
using System.Threading;
namespace test {
public static class Program {
public static void Main() {
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
culture.DateTimeFormat.LongTimePattern = "";
Thread.CurrentThread.CurrentCulture = culture;
Console.WriteLine(DateTime.Now);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将在日期时间设置ToString的默认行为,以返回您期望的格式.
它取决于您的应用程序的本地化设置.相应地改变以获得正确的格式.
否则有一个辅助类或扩展方法,它总是处理你的DateTime.
public static string ToMyDateTime(this DateTime dateTime) {
return dateTime.ToString("dd-MMMM-yy");
}
Run Code Online (Sandbox Code Playgroud)