109

不思議なことに、「5h 3m30s」のような出力に使用できるフォーマット文字列はありますか?

例えば。(明らかに間違っている)

myTimeSpan.ToString("hh mm ss")
4

7 に答える 7

154

試す:

myTimeSpan.ToString("h'h 'm'm 's's'")

(スペースでさえ引用する必要があることに注意してください-それが私の最初の試みで間違っていたものです。)

もちろん、.NET 4を使用していると思いますが、それ以前は、TimeSpanカスタム形式の文字列をサポートしていませんでした。

編集:前述のように、これは24時間を超えて機能しません。また、 NodaTimeからも代替手段を利用できることに注意してください:)

于 2012-06-18T06:13:48.733 に答える
21

残念ながら .NET4 を使用していない場合:

string.Format("{0}h{1}m{2}s",
    myTimeSpan.Hours,
    myTimeSpan.Minutes,
    myTimeSpan.Seconds);
于 2013-08-23T16:23:15.330 に答える
8

この小さなコード サンプルは、TimeSpan の解析と逆解析に役立ちます。

var t = TimeSpan.FromMilliseconds(450780);
double d1 = t.TotalSeconds;
string t3 = t.ToString(@"hh\:mm\:ss\.f",null);
var tt = TimeSpan.ParseExact(t3, @"hh\:mm\:ss\.f",null);
double d2 = tt.TotalSeconds;

リファレンス:カスタム TimeSpan フォーマット文字列

于 2014-11-07T16:22:09.357 に答える
6

調停はどうですか:

String oTime = myTimeSpan.ToString("h") + "h " +
               myTimeSpan.ToString("m") + "m " +
               myTimeSpan.ToString("s") + "s "

更新1:

一重引用符でエスケープできます。h'h 'm'm 's's'

于 2012-06-18T06:14:40.590 に答える