19

我在抛出 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);
}

这里有什么问题?这是线程问题吗?

4

2 回答 2

30

TimeOfDay是 typeTimeSpan并且它具有与 . 不同的格式选项DateTime。您还需要转义冒号 ( :)

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

您的示例尝试使用为定义"HH"的格式,但不是为.DateTimeTimeSpan

于 2013-04-03T05:09:39.667 回答
25

无需显式访问 DateTime 实例的 Date 和 TimeOfDay 属性。您可以像这样简化代码:

rtbAdd(String.Format("Submitted on {0:MM/dd/yyyy} at {0:HH:mm:ss.ffffff}", DateTime.Now));
于 2013-04-03T05:20:44.370 回答