我需要在不使用IFormatProvider
的情况下定义自定义格式说明符。
var str = DateTime.Now.ToString("myCustomSpecifier");
为什么不使用格式提供程序?因为我在代码生成环境中工作并且指定ToString
的第二个参数是不可能的。
同时我们不想保留方法.ToString()
,因此使用扩展方法创建另一种方法是不可接受的。
我尝试搜索Thread.CurrentThread.CurrentUICulture
成员,看看是否有任何可配置的内容我可以为此设置。或者,如果我可以设置默认格式提供程序。我找不到任何东西。
有人认为这是可能的吗?如果是这样的话?
答案 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。