2010-12-19 5 views
-1

もし私がそのような出力を得たら - TimeSpanオブジェクト - 余分なゼロとそれほど多くの小数点なしでうまくいくのですか?あなたは.NET 4をターゲットにしている場合どのようにより良いTimeSpanオブジェクト出力を取得するには?

+2

を作成し、必要なフォーマットは何ですか? –

+0

詳細をお知らせください。あなたが今持っているものとあなたが望むものの例を挙げてください。 – unholysampler

答えて

1

あなたは何が必要かもしれない、あなたの正確な要件に「G」TimeSpan Format Stringを知らなくてもTimeSpan.ToString(string) overload

に書式指定子のいずれかを使用できます。

短い全般形式

この指定子は、必要なものだけを出力します。文化に敏感で、形は
[-][d’:’]h’:’mm’:’ss[.FFFFFFF]です。

+0

.NET 4.0のみ利用可能 –

+0

@ハンス - 私はそれを見つけませんでした。私は答えを更新します。 – ChrisF

4

これは.NET 4.0で修正されました.TimeSpan構造体は、書式文字列を指定できるToString()オーバーロードを取得しました。

public static class Extensions { 
    public static string Format(this TimeSpan ts, string format) { 
     var dt = new DateTime(Math.Abs(ts.Ticks)); 
     var result = dt.ToString(format); 
     if (ts.Ticks < 0) result = "-" + result; 
     return result; 
    } 
} 

使用例:あなたがアップグレードできない場合、あなたはこの拡張メソッドを検討するかもしれない

 var ts = new TimeSpan(1, 2, 3); 
     var s = ts.Format("h:mm:ss"); 

を明確にしてください1時02分03秒

関連する問題