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

时间:2009-06-12 18:48:41

标签: c# datetime formatting

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

DateTime myDate = new DateTime( 2009, 6, 4 );
string result = myDate.ToString( "d" );

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

2 个答案:

答案 0 :(得分:43)

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

string result = myDate.ToString("%d");

MSDN

答案 1 :(得分:5)

使用Day属性

,而不是使用字符串格式化字符串
DateTime myDate = new DateTime(2009,6,4)
int result = myDate.Day;

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

string result = myDate.Day.ToString();

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