TimeSpan.ToString("hh:mm")错误

Moh*_*deh 27 c# timespan

为什么我想要获取TimeSpan自定义格式的字符串时出错.

DateTime.Now.TimeOfDay.ToString("hh:mm");
// Error: Input string was not in a correct format.
Run Code Online (Sandbox Code Playgroud)

Rav*_*tel 55

DateTime.Now.TimeOfDay.ToString(@"hh\:mm\:ss")
Run Code Online (Sandbox Code Playgroud)

文档


Mic*_*pus 9

根据MSDN TimeOfDay是TimeSpan.在TimeSpan.ToString的示例中,您可以看到:需要转义的内容.

hh \:mm \:ss:03:00:00

这也在Custom TimeSpan Format Strings页面上进行了解释

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

所以尝试:

DateTime.Now.TimeOfDay.ToString("hh\\:mm");      
Run Code Online (Sandbox Code Playgroud)

  • 天哪,这个例子让我很高兴。我只是浪费了 2 个小时阅读文档,忽略了他们(像往常一样打破所有世界标准)在格式字符串中使用反斜杠这一事实。 (2认同)