C#String.Format - 以自定义格式提供

Joh*_*tos 0 c# string string.format

我想知道这是否可能,如果是的话,如何实现它.

我知道该String.Format函数允许您为参数指定格式,如下所示:

String.Format("The Date is {0:yyyy-MM-dd}", DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

但我想知道以所需格式提供的最佳方式(例如"yyyy-MM-dd")最终会得到一个如下工作的功能(不起作用,但显示我想要完成的工作) ):

static string CreateFileName(string filename, string DateTimeFormat = "yyyy-MM-dd")
{
    return String.Format("{0} - {1:{2}}", filename, DateTime.Now, DateTimeFormat);
}
Run Code Online (Sandbox Code Playgroud)

我想我可以放一个假的占位符并做String.Replace第一个:

string formatString = "{0} - {1:{FMT}}";
formatString = formatString.Replace("{FMT}", DateTimeFormat);
Run Code Online (Sandbox Code Playgroud)

但我很想知道是否有更好的方法来完成我想要做的事情.

谢谢!!

Wil*_*ore 6

你可以使用:

var format = "yyyy-MM-dd";
var dateTimeString = string.Format("{0}", DateTime.Now.ToString(format));
Run Code Online (Sandbox Code Playgroud)

所以你的功能将成为:

static string CreateFileName(string filename, string DateTimeFormat = "yyyy-MM-dd")
{
    return String.Format("{0} - {1}", filename, DateTime.Now.ToString(DateTimeFormat));
}
Run Code Online (Sandbox Code Playgroud)