2015-04-24 6 views
3

Я хотел бы поместить переменную в составной формат в String.Format. ЗначениеПеременная String.Format в составном строковом формате

String str = String.Format("{0:[what should I put here]}", mydate, myFormat}; 

, так что результат будет зависеть от myFormat.

myFormat = "yyyy" => str = "2015" 
myFormat = "hh:mm:ss" => str = "08:20:20" 

Я не suceed с

String.Format("{0:{1}}", mydate, myFormat} 

ни

String.Format("{0:{{1}}}", mydate, myFormat} 

ни

String.Format("{0:\{1\}}", mydate, myFormat} 

Спасибо всем.

ответ

5

Ваша строка формата должна быть как:

string str = "{{0:{0}}}"; 

Затем можно форматировать так:

string format = string.Format(str, "yyyy"); 
format = string.Format(format, DateTime.Now); // this will give 2015 
3

Если вы хотите форматировать строку даты, то уверен, что это гораздо более простой способ, то ваш подход:

string myformat = "yyyy"; 
string secondFormat = "dd.MM.yyyy"; 
DateTime.Now.ToString(myformat) //2015 
DateTime.Now.ToString(secondFormat) //24.04.2015