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

use*_*160 14 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);
}
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*kov 25

TimeOfDayTimeSpan,它有不同的格式选项DateTime.你还需要逃脱::

 currentTime.TimeOfDay.ToString("hh\\:mm\\:ss\\.ffffff") 
Run Code Online (Sandbox Code Playgroud)

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

  • @ user1935160:无需将时间与DateTime实例分开.只需使用`CurrentTime.ToString("HH:MM:ss.ffffff")`.Date部分也是如此. (2认同)

Igb*_*man 21

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

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

  • 优秀.花了两个小时的时间在MSDN上阅读并在测试了一些代码中的一些排列之后拉了我的头发,这些代码让我无处可去,而且只有几分钟的专家时间!再次感谢. (2认同)