Как преобразовать TimeSpan в 24 часа и минуты String?

Я использую этот код для преобразования Timespan в String (например: 14:53):

myTimeSpan.ToString("hh:mm");

но эта ошибка возникает:

Строка ввода не была в правильном формате

Каков правильный способ сделать это?

Ответ 1

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

Пользовательские строки формата TimeSpan

Пользовательские спецификации формата TimeSpan не включают в себя placeholder разделительные символы, такие как символы, которые отделяют дни от часов, часов от минут или секунд от дробных секунд. Вместо этого эти символы должны быть включены в строку пользовательского формата в виде строки литералы. Например, "dd.hh \: mm" определяет период (.) Как разделитель между днями и часами и двоеточие (:) как разделитель между часами и минутами.

Ответ 2

Вам нужно использовать @"hh\:mm\" для TimeSpan. Форматирование временного интервала не совсем так же, как DateTime

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

За дополнительной информацией обращайтесь Msdn

Ответ 3

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

Ответ 4

От TimeSpan.ToString Method (String)

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

В качестве альтернативы вы можете использовать String.Format like;

Console.WriteLine(String.Format("{0}:{1}", t.Hours, t.Minutes));

Помните, что TimeSpan.ToString(String) перегрузка доступна только для .NET 4 или выше.

Ответ 5

Попробуйте, это будет работать на 100%!

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