String.Format()TimeSpan vs DateTime

时间:2015-08-19 19:32:49

标签: c# string-formatting timespan

为什么在格式化TimeSpan时需要转义分隔符,而在格式化DateTime时则不需要它?

示例:

void foo(TimeSpan elapsedTime)
{
    String.Format("Elapsed Time = {0:hh\\:mm\\:ss\\.fff}", elapsedTime);
    String.Format("Now = {0:hh:mm:ss.fff}", DateTime.Now);
}

1 个答案:

答案 0 :(得分:4)

你需要逃避":"带有" \"的字符(除非您使用逐字字符串,否则必须对其进行转义。)

  

自定义TimeSpan格式说明符不包含占位符   分隔符号,例如将小时与小时分开的符号,   几分钟或几秒钟的小时数。相反,这些   符号必须作为字符串包含在自定义格式字符串中   文字。例如," dd.hh:mm"将句点(。)定义为   天和小时之间的分隔符,以及冒号(:)作为分隔符   小时和分钟之间。

您可以阅读更多here