使用变量格式化日期

时间:2013-01-08 10:18:48

标签: c# date-format

以下输出为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);

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

6 个答案:

答案 0 :(得分:3)

我相信你有一个字符串变量格式,可能这就是你要找的东西:

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

答案 1 :(得分:2)

最简单的方法就是

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

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

答案 2 :(得分:2)

只需使用DateTime.ToString

string val = dd.ToString( dateFormat );

您将String.Format与您的格式字符串混淆,后者仅以此方式{0:yyyyMMdd}起作用。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

尝试这样的String.Format;

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

Demo

答案 5 :(得分:0)

您也可以使用.ToString(字符串格式)

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