次のコードは、時刻を適切にフォーマットしません。私が欲しいのは minutes:seconds:milliseconds_with_3_decimals だけですが、どのフォーマットを選択しても無視され、時間はデフォルトのフォーマットで表示されます。
Log(LogMsgType.Normal, String.Format("+{0:mm:ss.fff} ", DateTime.Now.Subtract(latest)));
TimeSpan
ではなく、のフォーマットを調べる必要がありますDateTime
。これは、.NET 4.0 (Visual Studio 2010) の新機能です。参照: MSDN: カスタムTimeSpan
フォーマット文字列。
私は次のようなことを試みます:
String.Format("+{0:mm':'ss'.'fff} ", DateTime.Now - latest)
(最初に 60 分を超えていないことを確認することをお勧めします。そうしないと、期間の最も重要な部分が失われます。)
注: .NET 3.5 以前を使用している場合、これらのバージョンでTimeSpan
なかっIFormattable
その場合、私はお勧めします:
var span = DateTime.Now - latest;
...
String.Format("+{0:D2}:{1:D2}.{2:D3} ", span.Minutes, span.Seconds, span.Milliseconds)
あなたがしたい:
@"+{0:mm\:ss\.fff} "
コロンとピリオドをエスケープする必要があります