5
TimeSpan Ts = new TimeSpan(5, 4, 3, 2);
return Ts.ToString("?");

この形式を取得するには、どの式を疑問符に置き換える必要がありますか: 5d:4h:3m:2s

4

4 に答える 4

12
TimeSpan timeSpan = new TimeSpan(5, 4, 3, 2);
string str = timeSpan.ToString(@"d\d\:h\h\:m\m\:s\s", System.Globalization.CultureInfo.InvariantCulture);

のフォーマット方法については、カスタムTimeSpanフォーマット文字列を参照してくださいTimeSpan

ただし、負TimeSpanのsは正のsと区別できないことに注意してください。それらは否定されたように見えます。そのため-new TimeSpan(5,4,3,2)、引き続きとして表示され5d:4h:3m:2sます。負の数を表示する場合は、のプロパティを使用して独自の数をフォーマットする必要がありますTimeSpan

于 2013-03-10T12:10:03.783 に答える
3

これは、現在のコードを使用して実現できます

TimeSpan Ts = new TimeSpan(5, 4, 3, 2);
var RetValue = string.Format("{0}d:{1}h:{2}m:{3}s",
    Ts.Days,
    Ts.Hours,
    Ts.Minutes,
    Ts.Seconds);

これをフォーマットされた結果として生成します"5d:4h:0m:2s"

于 2013-03-10T12:17:37.250 に答える
2

これは私のために働く

"d'd:'h'h:'m'm:'s's'"

ここにありますhttp://msdn.microsoft.com/en-us/library/ee372287.aspx

于 2013-03-10T12:20:58.890 に答える
0

これは、空の大きな時間部分を非表示にするTimeSpanExtensionメソッドです。

public static string ToShortString(this TimeSpan Ts)
{
    if(Ts.TotalDays > 1d)
        return Ts.ToString("d'd:'h'h:'m'm:'s's'");

    if(Ts.TotalHours > 1d)
        return Ts.ToString("h'h:'m'm:'s's'");

    if(Ts.TotalMinutes > 1d)
        return Ts.ToString("m'm:'s's'");

    if(Ts.TotalSeconds > 1d)
        return Ts.ToString("s's'");

    if(Ts.TotalMilliseconds > 1d)
        return Ts.ToString("fffffff'ms'");

    return Ts.ToString();
}
于 2019-04-25T02:24:49.897 に答える