2012-06-13 12 views
9

Ich bin für eine Lösung in .net 3.5 Suche schrieb ich die folgende Arbeitslösung:Format Timespan zu mm: ss für positiven und negativen Timespan

private string FormatTimeSpan(TimeSpan time) 
{ 
    return String.Format("{0}{1:00}:{2:00}", time < TimeSpan.Zero ? "-" : "", Math.Abs(time.Minutes), Math.Abs(time.Seconds)); 
} 

Aber meine Frage ist: Gibt es einen besseren Weg? Vielleicht etwas kürzer, wo ich keine Hilfsfunktion brauche.

Antwort

21

etwas kürzer, mit Custom TimeSpan Format Strings:

private string FormatTimeSpan(TimeSpan time) 
{ 
    return ((time < TimeSpan.Zero) ? "-" : "") + time.ToString(@"mm\:ss"); 
} 
+0

Sollte nicht das negative Vorzeichen automatisch aus dem time.ToString erscheinen () – Tisho

+4

@Tisho - Es geht nicht, nicht mit einer benutzerdefinierten Formatzeichenfolge. Und es gibt keinen benutzerdefinierten Formatbezeichner dafür. – Oded

+1

Oh, richtig. Es funktioniert nur für "c", "g" .. Danke. – Tisho

2

für unter .Net 4.0

können Sie verwenden:

get { return Time.ToString().Substring(3); } 
+0

Ich denke, das ist ein kluger Hack. – Infrid

Verwandte Themen