DateTime ToString损坏了吗?

时间:2020-08-20 14:45:21

标签: c# datetime .net-core tostring

对于

DateTime aDate = new DateTime(2000,1,1);  
Console.WriteLine(aDate.ToString("d"));

我希望有1,但它会写成1/1/2000

MSDN说:

d每月的某天,从1到31。

2009-06-01T13:45:30-> 1

2009-06-15T13:45:30-> 15

有什么解决方法吗?与M相同。

dotnetfiddle

4 个答案:

答案 0 :(得分:8)

来自docs

如果在不使用其他自定义格式说明符的情况下使用“ d”格式说明符,则将其解释为“ d”标准日期和时间格式说明符。

“ d”是The Short Date ("d") Format Specifier

如果您只需要每月的某天,则有DateTime.Day

Console.WriteLine(aDate.Day);

或者,您可以在格式字符串前面加上%:

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

答案 1 :(得分:0)

您已经创建了DateTime对象,因此可以从aDate.Day或aDate.Month访问它的属性,如果您想从datetime对象中获取day属性,则可以直接访问

Console.WriteLine(aDate.Days.ToString()); // in your case

答案 2 :(得分:0)

您的路线正确。要仅打印日期,您必须改为:

Console.WriteLine(aDate.ToString("dd"));

这个月应该是:

Console.WriteLine(aDate.ToString("MM"));

答案 3 :(得分:0)

解决方案是:

Console.WriteLine(aDate.ToString(" d"));

在这里重要的是:和d之间的空格。和M一样。