title: TimeSpan FormatString with optional hours
body: <p>I have a timespan, <code>ts</code>, that has mostly minutes and seconds, but sometimes hours.
  I'd like <code>ts</code> to return a formatted string that'll give the following results:</p>
  
  <pre><code>3:30 (hours not displayed, showing only full minutes)
  13:30 
  1:13:30 (shows only full hours instead of 01:13:30)
  </code></pre>
  
  <p>So far I have:</p>
  
  <pre><code>string TimeSpanText = string.Format("{0:h\\:mm\\:ss}", MyTimeSpan);
  </code></pre>
  
  <p>but it's not giving the above results. How can I achieve the results I want?</p>