使用变量格式化日期

本文关键字:日期 格式化 变量 | 更新日期: 2023-09-27 17:50:55

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

我如何能实现它使用格式在一个变量如上?

使用变量格式化日期

就用DateTime.ToString:

string val = dd.ToString( dateFormat );

你混淆了String.Format和你的格式字符串,它只以这种方式工作{0:yyyyMMdd}

我相信你有一个字符串变量的格式,可能这是你正在寻找的:

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

最简单的方法就是

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

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

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

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

尝试这样设置String.Format;

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

Demo

也可以使用。tostring(字符串格式)

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