1

次のコードは、時刻を適切にフォーマットしません。私が欲しいのは minutes:seconds:milliseconds_with_3_decimals だけですが、どのフォーマットを選択しても無視され、時間はデフォルトのフォーマットで表示されます。

Log(LogMsgType.Normal, String.Format("+{0:mm:ss.fff} ", DateTime.Now.Subtract(latest)));

コード出力

4

2 に答える 2

8

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)
于 2013-07-06T21:28:06.233 に答える
0

あなたがしたい:

@"+{0:mm\:ss\.fff} "

コロンとピリオドをエスケープする必要があります

于 2013-07-06T21:35:20.890 に答える