格式化.NET DateTime"Day",没有前导零

Mar*_*the 24 c# formatting datetime

对于下面的代码,我希望结果等于2,因为MSDN声明'd'"表示月份中的日期为1到31之间的数字.一位数字日的格式没有前导零."

DateTime myDate = new DateTime( 2009, 6, 4 );
string result = myDate.ToString( "d" );
Run Code Online (Sandbox Code Playgroud)

但是,结果实际上等于'6/4/2009' - 这是短日期格式(也是'd').我可以使用'dd',但这会增加一个前导零,我不想要.

Mar*_*the 46

要指示这是自定义格式说明符(与标准格式说明符相反),它必须是两个字符长.这可以通过添加一个空格(将显示在输出中),或通过在单个字母前加一个百分号来实现,如下所示:

string result = myDate.ToString("%d");
Run Code Online (Sandbox Code Playgroud)

MSDN


Jam*_*aro 5

而不是使用字符串格式字符串,如何使用Day属性

DateTime myDate = new DateTime(2009,6,4)
int result = myDate.Day;
Run Code Online (Sandbox Code Playgroud)

或者如果你真的需要字符串格式的结果

string result = myDate.Day.ToString();
Run Code Online (Sandbox Code Playgroud)

如果您希望从日期对象中获取特定日期部分而不是日期的格式化表示,我更喜欢使用属性(Day,Month,Year,DayOfWeek等).这使得阅读代码更容易一些(特别是如果其他人正在阅读/维护它没有记住各种格式代码)