为什么DateTime.Now.TimeOfDay.ToString(“HH:mm:ss.ffffff”)抛出FormatException?

时间:2013-04-03 05:04:48

标签: c# datetime 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);
}

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

2 个答案:

答案 0 :(得分:24)

TimeOfDayTimeSpan,其formatting optionsDateTime不同。您还需要转义':'

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

您的示例尝试使用的"HH"格式为defined for DateTime,但不适用于TimeSpan

答案 1 :(得分:21)

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

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