TimeSpan.ToString(“hh:mm”)错误

时间:2015-03-15 07:19:00

标签: c# timespan

为什么当我想获得具有自定义格式的TimeSpan字符串时出现错误。

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

3 个答案:

答案 0 :(得分:50)

DateTime.Now.TimeOfDay.ToString(@"hh\:mm\:ss")

Documentation

答案 1 :(得分:8)

根据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");

答案 2 :(得分:0)

请勿使用TimeOfDay。直接在ToString()上执行DateTime.Now

DateTime.Now.ToString("hh:mm");

TimeOfDayTimeSpan。文档清楚地说明了TimeSpan.ToString(string format)重载:

format参数可以是TimeSpan值的任何有效标准或自定义格式说明符。如果format等于String.Empty或为null,则使用通用格式说明符(“c”)格式化当前TimeSpan对象的返回值。如果format是任何其他值,则该方法抛出FormatException。

如果必须使用TimeSpan变量,只需将其添加到时间部分设置为零的DateTime变量中,然后使用其ToString():< / p>

DateTime.Today.Add(YourTimeSpanVariable).ToString("hh:mm");