复合字符串格式的String.Format变量

Ken*_*nny 3 c# string string.format datetime composite

我想在String.Format中将变量放入复合格式.含义

String str = String.Format("{0:[what should I put here]}", mydate, myFormat};
Run Code Online (Sandbox Code Playgroud)

所以结果将取决于myFormat.

myFormat = "yyyy" => str = "2015"
myFormat = "hh:mm:ss" => str = "08:20:20"
Run Code Online (Sandbox Code Playgroud)

我没有成功

String.Format("{0:{1}}", mydate, myFormat}
Run Code Online (Sandbox Code Playgroud)

也不

String.Format("{0:{{1}}}", mydate, myFormat}
Run Code Online (Sandbox Code Playgroud)

也不

String.Format("{0:\{1\}}", mydate, myFormat}
Run Code Online (Sandbox Code Playgroud)

感谢大家.

Ale*_*ria 5

您的格式字符串应如下所示:

string str = "{{0:{0}}}";
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样格式化:

string format = string.Format(str, "yyyy");
format = string.Format(format, DateTime.Now); // this will give 2015
Run Code Online (Sandbox Code Playgroud)