如何将TimeSpan转换为24小时和分钟字符串?

我使用此代码将Timespan转换为String (例如:14:53):

 myTimeSpan.ToString("hh:mm"); 

但是会发生以下错误:

输入字符串的格式不正确

这样做的正确方法是什么?

 myTimeSpan.ToString(@"hh\:mm") 

自定义TimeSpan格式字符串

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

你需要为TimeSpan使用@"hh\:mm\" 。 Timespan格式与DateTime不完全相同

 myTimeSpan.ToString(@"hh\:mm"); 

查看Msdn了解更多信息

 var result = string.Format("{0:D2}:{1:D2}", myTimeSpan.Hours, myTimeSpan.Minutes); 

来自TimeSpan.ToString Method (String)

 TimeSpan t = new TimeSpan(14, 53, 0); Console.WriteLine(t.ToString(@"hh\:mm")); 

作为替代方案,您可以使用String.Format类的;

 Console.WriteLine(String.Format("{0}:{1}", t.Hours, t.Minutes)); 
  • 标准TimeSpan格式字符串
  • 自定义TimeSpan格式字符串

请记住TimeSpan.ToString(String)重载仅适用于.NET 4或更高版本。

试试这将100%工作!

 myTimeSpan.ToString(@"dd\.hh\:mm");.