为默认格式提供程序添加自定义日期时间格式说明符

时间:2012-07-10 16:26:02

标签: c# datetime format datetime-format

我需要在不使用IFormatProvider的情况下定义自定义格式说明符。

var str = DateTime.Now.ToString("myCustomSpecifier");

为什么不使用格式提供程序?因为我在代码生成环境中工作并且指定ToString的第二个参数是不可能的。

同时我们不想保留方法.ToString(),因此使用扩展方法创建另一种方法是不可接受的。

我尝试搜索Thread.CurrentThread.CurrentUICulture成员,看看是否有任何可配置的内容我可以为此设置。或者,如果我可以设置默认格式提供程序。我找不到任何东西。

有人认为这是可能的吗?如果是这样的话?

2 个答案:

答案 0 :(得分:0)

internal const string DATETIME_FORMAT = "dd MMM yyyy";

public void Method()
{
    var str = DateTime.Now.ToString(DATETIME_FORMAT);
}

答案 1 :(得分:0)

您可以直接对当前线程的文化进行此操作

var cultureInfo = (CultureInfo)CultureInfo.GetCultureInfo("fr-FR").Clone();
cultureInfo.DateTimeFormat.ShortDatePattern = "dd.MM.yyyy";
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;

将此代码放在App.xaml.cs的构造函数中。

ToString("d")方法将显示您的自定义partern。