web-dev-qa-db-ja.com

なぜDateTime.Now.TimeOfDay.ToString( "HH:mm:ss.ffffff")がFormatExceptionをスローするのですか?

FormatExceptionがスローされるという同様の問題があります。私のコードは単純です:

void Orders_OnSubmit()
{
   DateTime CurrentTime = DateTime.Now;
   rtbAdd( "Submitted on " + CurrentTime.Date.ToString("MM/dd/yyyy") + " at " + CurrentTime.TimeOfDay.ToString("HH:mm:ss.ffffff") );
}

void rtbAdd(String S)
{
   DefaultDelegate del = delegate()
   {
      rtb.AppendText(S + "\n");
   };
   this.Invoke(del);
}

ここで何が問題になっていますか?これはスレッドの問題ですか?

16
user1935160

DateTimeインスタンスのDateプロパティとTimeOfDayプロパティに明示的にアクセスする必要はありません。次のようにコードを簡略化できます。

rtbAdd(String.Format("Submitted on {0:MM/dd/yyyy} at {0:HH:mm:ss.ffffff}", DateTime.Now));
21
Igby Largeman

TimeOfDayTimeSpan型であり、 書式オプションDateTimeとは異なります。コロン(:)もエスケープする必要があります

 currentTime.TimeOfDay.ToString("hh\\:mm\\:ss\\.ffffff") 

サンプルは"HH"形式を使用しようとしましたが、これは DateTime に対して定義されていますが、TimeSpanでは定義されていません。

27
Alexei Levenkov