TimeSpan ToString"[d.] hh:mm"

rio*_*fly 10 c# timespan tostring custom-formatting

我试图将TimeSpan格式化为字符串.然后我从MSDN到期以生成我的自定义字符串格式.但它没有言语.它返回"FormatException".

为什么?我不明白......

var ts = new TimeSpan(0, 3, 25, 0);
var myString = ts.ToString("[d'.']hh':'mm");
Run Code Online (Sandbox Code Playgroud)

Tim*_* S. 11

我认为你试图做一些像c标准格式的可选日期和小数秒部分.据我所知,自定义格式字符串不能直接实现. 具有可选小时的TimeSpan FormatString与您的问题类似,我建议类似于他们的解决方案:使用扩展方法为您构建格式字符串.

public static string ToMyFormat(this TimeSpan ts)
{
    string format = ts.Days >= 1 ? "d'.'hh':'mm" : "hh':'mm";
    return ts.ToString(format);
}
Run Code Online (Sandbox Code Playgroud)

然后使用它:

var myString = ts.ToMyFormat();
Run Code Online (Sandbox Code Playgroud)