以下代码:
DateTime test = new DateTime();
Console.WriteLine(test.ToString("d"));
Console.WriteLine(test.ToString("d_"));
Console.WriteLine(test.ToString("dd"));
产生以下结果:
0001-01-01
1_
01
第一个结果是完整日期,因为d
被视为标准日期格式。另一方面,d_
被视为自定义日期格式,在这种情况下,d被视为短日期字符串。有没有办法只生成没有下划线的短日照?
答案 0 :(得分:5)
其中任何一个:
Console.WriteLine(test.ToString("%d"));
Console.WriteLine(test.ToString(" d"));
Console.WriteLine(test.ToString("d "));
来自https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx#UsingSingleSpecifiers
使用任何自定义日期和时间格式说明符作为格式字符串中的唯一说明符(即,使用" d"," f",&#34 ; F"," g"," h"," H"," K"," m" ," M"," s"," t"," y"," z"," :",或" /"自定义格式说明符),在说明符之前或之后包含空格,或包含百分比("%")单个自定义日期和时间说明符之前的格式说明符。
答案 1 :(得分:2)
根据msdn,你可以这样做:
chr
答案 2 :(得分:0)
我担心此问题只有解决方法。您希望将date.ToString("d")
解释为显示当天的custom date time format string。但根据定义,单个格式说明符始终指定standard date and time format string。
您可以直接使用DateTime.Day
:
Console.WriteLine(test.Day);
或这个使用d
空格+ Trim
的技巧:
Console.WriteLine(test.ToString(" d ").Trim());
MSDN:
标准日期和时间格式字符串使用单个格式说明符 定义日期和时间值的文本表示。 任何日期 和时间格式字符串,包含多个字符, 包括空格,被解释为自定义日期和时间格式 串强>