使用标准或自定义日期格式

本文关键字:日期 格式 自定义 标准 | 更新日期: 2023-09-27 18:15:20

以下代码:

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被视为短日期字符串。有没有一种方法只生成短天没有下划线?

使用标准或自定义日期格式

以下任意一个:

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"、"f"、"g"、"h"、"h"、"K"、"m"、"m"、"s"、"t"、"y"、"z"、":"或"/"自定义格式说明符),在说明符前后包含一个空格,或在单个自定义日期和时间说明符之前包含一个百分比("%")格式说明符。

根据msdn,你可以这样做:

Console.WriteLine(test.ToString("%d"));

恐怕这个问题只有变通办法了。您希望将date.ToString("d")解释为显示日期的自定义日期时间格式字符串。但是对于每个定义,单个格式说明符总是指定一个标准日期和时间格式字符串。

可以直接使用DateTime.Day:

Console.WriteLine(test.Day);

或者这个技巧使用d和一个空白的空间+ Trim:

Console.WriteLine(test.ToString(" d ").Trim());

MSDN:

标准日期和时间格式字符串使用单个格式说明符定义日期和时间值的文本表示形式。任何日期以及包含多个字符的时间格式字符串,包括空白,被解释为自定义日期和时间格式字符串