Обратите внимание: этот ответ для .Net 4.0 и выше. Если вы хотите отформатировать TimeSpan в .Net 3.5 или ниже, см. ответ JohannesH .
Пользовательские строки формата TimeSpan были введены в .Net 4.0. Полный список доступных спецификаторов формата можно найти на странице MSDN Пользовательские строки формата TimeSpan .
Вот пример строки формата временного интервала:
string.Format("{0:hh\\:mm\\:ss}", myTimeSpan); //example output 15:36:15
( UPDATE ) и вот пример использования C # 6 для интерполяции строк:
$"{myTimeSpan:hh\\:mm\\:ss}"; //example output 15:36:15
Вам необходимо экранировать символ ":" с помощью символа "\" (который сам должен быть экранирован, если вы не используете дословную строку).
В этом отрывке со страницы MSDN Пользовательские строки формата TimeSpan объясняется, как экранировать ":" и "." символы в строке формата:
Пользовательские спецификаторы формата TimeSpan не включают символы-разделители-заполнители, такие как символы, которые отделяют дни от часов, часы от минут или секунды от дробных секунд. Вместо этого эти символы должны быть включены в строку пользовательского формата в виде строковых литералов. Например, «dd.hh: mm» определяет точку (.) Как разделитель между днями и часами, а двоеточие (:) как разделитель между часами и минутами.