5

以下给出的输出为 20121212。

DateTime dd = new DateTime(2012, 12, 12);
string val = String.Format("{0:yyyyMMdd}", dd);

当格式在变量中时。以下没有给出上述输出。

DateTime dd = new DateTime(2012, 12, 12);
string dateFormat = "yyyyMMdd";
string val = String.Format("{0}:{1}", dd, dateFormat);

如何使用上述变量中​​的格式来实现它?

4

6 回答 6

3

我相信您在字符串变量中具有格式,这可能是您正在寻找的内容:

DateTime dd = new DateTime(2012, 12, 12);
string strFormat = "yyyyMMdd";
string val = String.Format("{0:"+ strFormat + "}", dd);
于 2013-01-08T10:21:49.057 回答
2

最简单的方法就是

DateTime dd = new DateTime(2012, 12, 12);
string strFormat = "yyyyMMdd";
string val = dd.ToString(strFormat);

String.Format不直接支持可变格式字符串。

于 2013-01-08T10:23:16.513 回答
2

只需使用DateTime.ToString

string val = dd.ToString( dateFormat );

String.Format您对仅以这种方式起作用的格式字符串感到困惑{0:yyyyMMdd}

于 2013-01-08T10:24:33.457 回答
0

您可以使用DateTime.ToString(string)方法:

DateTime dd = new DateTime(2012, 12, 12);
string dateFormat = "yyyyMMdd";
string val = dd.ToString(dateFormat);
于 2013-01-08T10:23:31.143 回答
0

试试String.Format这样;

DateTime dt = new DateTime(2012, 12, 12);
string Format = "yyyyMMdd";
string yourstring = String.Format("{0:" + Format + "}", dt);
Console.WriteLine(yourstring);

Demo

于 2013-01-08T10:23:41.207 回答
0

您也可以使用 .ToString(string format)

DateTime dd = new DateTime(2012, 12, 12);
string strFormat = "yyyyMMdd";
string val = dd.ToString(strFormat);
于 2013-01-08T10:24:49.317 回答