私の 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 00:00:00
2013-02-22 23:59:59
しかし、そうではありません。私の出力は次のとおりです。
2013-02-22 12:00:00
2013-02-22 11:59:59
フォーマット文字列 (selectedDate.ToString()) なしで DateTime 値を表示すると、22/02/2013 00:00:00 が正しく表示されるため、これはフォーマットの問題であると確信しています。ただし、日付は 22-02-2013 00:00:00 の形式である必要があります。
私の最初の日付が正午になり、2 番目の日付が 11:59:59 になると C# が判断する理由はありますか?