2013-08-28 12 views
13

Ich benutze diesen Code Timespan-String zum Umwandeln (zB: 14.53):Wie konvertieren TimeSpan zu 24 Stunden und Minuten String?

myTimeSpan.ToString("hh:mm"); 

aber dieser Fehler auftritt:

Eingabezeichenfolge nicht in einem korrekten Format war

Was ist der richtige Weg, dies zu tun?

+0

ähnliche Frage beantwortet: http://stackoverflow.com/questions/463642/what-is-the- best-way-to-convert-Sekunden-in-Stundenminutessecondsmilliseconds –

+2

@AbhishekShetty; Ja, die Antworten sind jedoch vor .NET 4 (ohne 'TimeSpan.ToString'). –

Antwort

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

Custom TimeSpan Format Strings

Die benutzerdefinierten Timespan Formatbezeich nicht Platzhalter Separator Symbole enthalten, wie die Symbole, die unterschiedlichen Tagen von Stunden, Stunden von Minuten oder Sekunden von Sekundenbruchteilen . Stattdessen müssen diese Symbole in der benutzerdefinierten Formatzeichenfolge als Zeichenfolge Literale enthalten sein. Zum Beispiel definiert "dd.hh \: mm" einen Punkt (.) Als Trennzeichen zwischen Tagen und Stunden und einen Doppelpunkt (:) als Trennzeichen zwischen Stunden und Minuten.

+2

Beachten Sie, dass dies keine Zeiträume von mehr als 24 Stunden (es verliert den Tag Teil) behandelt. –

+1

@MatthewWatson: Korrigieren. Ich habe angenommen, OP's Maximum ist 24 Stunden wegen des Titels und was er versucht hat. Er könnte die Tage einschließen: 'myTimeSpan.ToString (@" d \ .hh \: mm ")' –

0

Versuchen Sie, das wird 100% funktionieren !!

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

Sie müssen @"hh\:mm\" für TimeSpan verwenden. Zeitspanne Formatierung ist nicht genau die gleiche wie DateTime

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

Check out Msdn für weitere Informationen

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