我正在寻找 .net 3.5 中的解决方案我编写了以下工作解决方案:
private string FormatTimeSpan(TimeSpan time)
{
return String.Format("{0}{1:00}:{2:00}", time < TimeSpan.Zero ? "-" : "", Math.Abs(time.Minutes), Math.Abs(time.Seconds));
}
但我的问题是:有更好的方法吗?也许是更短的东西,我不需要辅助函数。
稍微短一些,使用自定义时间跨度格式字符串:
private string FormatTimeSpan(TimeSpan time)
{
return ((time < TimeSpan.Zero) ? "-" : "") + time.ToString(@"mm\:ss");
}
适用于.Net 4.0以下
您可以使用:
get { return Time.ToString().Substring(3); }
最好提前准备格式字符串,并且不要在每次格式调用时生成带有连接的字符串
public static class TimeSpanOffsetFormatExtensions
{
private const string PositiveFormat = @"\+hh\:mm";
private const string NegativeFormat = @"\-hh\:mm";
public static string FormatOffset(this TimeSpan timeSpan)
{
var format = timeSpan < TimeSpan.Zero
? NegativeFormat
: PositiveFormat;
return timeSpan.ToString(format);
}
}