C# 无法更改DateTime的月份格式

C# 无法更改DateTime的月份格式,c#,datetime,C#,Datetime,我正在尝试将日期和时间字符串转换为DateTime变量,并将月份更改为两位数的月份,而不是一位数的月份 这是我目前的代码: string date = item; // 6/17/15 10:02:01 AM DateTime dt = Convert.ToDateTime(item); string dtm = dt.Month.ToString("MM"); string dty = dt.Year.ToString("yyyy"); Console.WriteLine(date); Con

我正在尝试将日期和时间字符串转换为DateTime变量,并将月份更改为两位数的月份,而不是一位数的月份

这是我目前的代码:

string date = item; // 6/17/15 10:02:01 AM
DateTime dt = Convert.ToDateTime(item);
string dtm = dt.Month.ToString("MM");
string dty = dt.Year.ToString("yyyy");
Console.WriteLine(date);
Console.WriteLine("Year: {0}, Month: {1}, Day: {2}", dty, dtm, dt.Day);
Console.WriteLine(dt.TimeOfDay);
你需要:

string dtm = dt.ToString("MM");
string dty = dt.ToString("yyyy");

您的原始代码试图将自定义日期时间格式应用于
dt.Month
,它只是一个
int
,因此自定义日期格式字符串不适用于它。(这一年也是如此)。

只有
DateTime
对象才能使用
ToString
方法中的格式字符串。所以你可以写:

string dtm = dt.ToString("MM");
string dty = dt.ToString("yyyy");
第二个选项是对带有前导零的
int
对象简化
Tostring
方法,如:

string dtm = dt.ToString("D2");
string dty = dt.ToString("D2");

如果您只想输出您在代码中编写的字符串,请尝试以下操作:

string date = item; // 6/17/15 10:02:01 AM
DateTime dt = Convert.ToDateTime(item);
Console.WriteLine(dt.ToString("'Year: 'yyyy', Month: 'MM', Day: 'dd"));
注意字符串中使用了单引号


非常感谢。我可以在10分钟后选择这个作为最佳答案。@SonerGönül,对不起,我错过了开头的括号。现在更新,请检查。谢谢你指出:)