Search code examples
c#timeformattingstring-formatting

Format TimeSpan to mm:ss for positive and negative TimeSpans


I'm looking for a solution in .net 3.5 I wrote the following working solution:

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

But my Question is: Is there a better way? Maybe something shorter where I do not need an helper function.


Solution

  • Somewhat shorter, using Custom TimeSpan Format Strings:

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