不思議なことに、「5h 3m30s」のような出力に使用できるフォーマット文字列はありますか?
例えば。(明らかに間違っている)
myTimeSpan.ToString("hh mm ss")
試す:
myTimeSpan.ToString("h'h 'm'm 's's'")
(スペースでさえ引用する必要があることに注意してください-それが私の最初の試みで間違っていたものです。)
もちろん、.NET 4を使用していると思いますが、それ以前は、TimeSpan
カスタム形式の文字列をサポートしていませんでした。
編集:前述のように、これは24時間を超えて機能しません。また、 NodaTimeからも代替手段を利用できることに注意してください:)
残念ながら .NET4 を使用していない場合:
string.Format("{0}h{1}m{2}s",
myTimeSpan.Hours,
myTimeSpan.Minutes,
myTimeSpan.Seconds);
この小さなコード サンプルは、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 フォーマット文字列
調停はどうですか:
String oTime = myTimeSpan.ToString("h") + "h " +
myTimeSpan.ToString("m") + "m " +
myTimeSpan.ToString("s") + "s "
更新1:
一重引用符でエスケープできます。h'h 'm'm 's's'