2013-02-22 81 views
0

在我的c#程序中,用戶可以從winforms日期時間選擇器中選擇一個日期。這被命名爲dtpOutboxDateTime格式轉換

這裏是我的代碼:

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 00:00:00 
2013-02-22 23:59:59 

但這種情況並非如此。我的輸出是:

2013-02-22 12:00:00 
2013-02-22 11:59:59 

我敢肯定這是一個格式化的問題,因爲當時我沒有格式字符串顯示日期時間值(selectedDate.ToString()),那麼它會顯示22/02/2013 00: 00:00正確。不過,我需要我的日期格式爲22-02-2013 00:00:00。

任何想法,爲什麼C#決定我的第一次約會是中午,而我的第二次約會是11:59:59?

+0

提示:「12:00 am」爲24h格式的「00:00」。 – Otiel 2013-02-22 14:55:19

+0

由於您要求的格式非常流行,我很驚訝沒有它的捷徑。 – 2013-02-22 15:14:14

回答

8

hh是12小時制時鐘輸出。

HH是24小時制輸出。

您正在使用小寫字母變體,但不輸出AM/PM值。這可能是混淆的原因。