Подтвердить что ты не робот

Почему DateTime.Now.TimeOfDay.ToString( "HH: mm: ss.ffffff" ) throw 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);
}

Что здесь не так? Это проблема с потоками?

4b9b3361

Ответ 1

Нет необходимости явно обращаться к свойствам Date и TimeOfDay экземпляра DateTime. Вы можете упростить свой код следующим образом:

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

Ответ 2

TimeOfDay относится к типу TimeSpan и имеет параметры форматирования, отличные от DateTime. Вам также нужно сбежать из толстой кишки (:)

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

Ваш образец пытался использовать формат "HH", который определен для DateTime, но не для TimeSpan.