为什么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); } 

这有什么不对? 这是一个线程问题吗?

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

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

TimeOfDayTimeSpan ,它具有与DateTime不同的格式选项 。 你还需要逃避':'

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

您的示例尝试使用为DateTime定义的 "HH"格式,但不为TimeSpan 定义 。