C# 日期时间格式转换

C# 日期时间格式转换,c#,datetime,C#,Datetime,在我的c#程序中,用户可以从winforms日期时间选择器中选择日期。这被命名为dtpOutbox 这是我的密码: DateTime selectedDate = dtpOutbox.Value.Date; TimeSpan ts = new TimeSpan(23,59,59); DateTime endOfSelectedDay = selectedDate + ts; Console.WriteLine(selectedDate.ToString("yyyy-MM-dd hh:mm:ss

在我的c#程序中,用户可以从winforms日期时间选择器中选择日期。这被命名为
dtpOutbox

这是我的密码:

DateTime selectedDate = dtpOutbox.Value.Date;
TimeSpan ts = new TimeSpan(23,59,59);
DateTime endOfSelectedDay = selectedDate + ts;

Console.WriteLine(selectedDate.ToString("yyyy-MM-dd hh:mm:ss"));
Console.WriteLine(endOfSelectedDay.ToString("yyyy-MM-dd hh:mm:ss"));
现在,如果今天的日期是2月22日,我的理解是应该输出(期望输出):

但事实并非如此。我的输出是:

2013-02-22 12:00:00
2013-02-22 11:59:59
我很确定这是一个格式问题,因为当我显示没有格式字符串的日期时间值(selectedDate.ToString())时,它会正确显示2013年2月22日00:00:00。但是,我需要我的日期格式为22-02-2013 00:00:00


你知道为什么C#决定我的第一次约会是中午,而我的第二次约会是11:59:59吗?

hh
是12小时的时钟输出

HH
是24小时时钟输出


您使用的是小写变量,但不输出AM/PM值。这可能是造成混淆的原因。

这就是您要寻找的:

Console.WriteLine(selectedDate.ToString("yyyy-MM-dd HH:mm:ss"));
对于24小时格式,请使用
HH
而不是
HH


您可能想看看。

提示:“12:00am”是24小时格式的“00:00”。由于您要求的格式非常流行,我很惊讶没有快捷方式。
Console.WriteLine(selectedDate.ToString("yyyy-MM-dd HH:mm:ss"));