web-dev-qa-db-ja.com

TimeSpanを24時間文字列に変換する方法は?

TimespanStringに変換するためにこのコードを使用します(例:14:53):

myTimeSpan.ToString("hh:mm");

しかし、このエラーは発生します:

入力文字列は、正しい形式ではありませんでした

これを行う適切な方法は何ですか?

19
Majid
myTimeSpan.ToString(@"hh\:mm")

カスタムTimeSpan形式文字列

カスタムTimeSpan形式指定子には、日と時間、時間と分、秒と小数秒の区切り記号などのプレースホルダー区切り記号は含まれません。代わりに、これらのシンボルは、文字列リテラルとしてカスタム形式の文字列に含める必要があります。たとえば、「dd.hh \:mm」は、日と時間の間の区切り文字としてピリオド(。)を定義し、時間と分の間の区切り文字としてコロン(:)を定義します。

40
Tim Schmelter

TimeSpanには@"hh\:mm\"を使用する必要があります。タイムスパンのフォーマットはDateTimeとまったく同じではありません

myTimeSpan.ToString(@"hh\:mm");

詳細については、 Msdn をご覧ください

10
var result = string.Format("{0:D2}:{1:D2}",  myTimeSpan.Hours, myTimeSpan.Minutes);
9
Damith

TimeSpan.ToString Method (String) から

_TimeSpan t = new TimeSpan(14, 53, 0);
Console.WriteLine(t.ToString(@"hh\:mm"));
_

別の方法として、_String.Format_のように使用できます。

_Console.WriteLine(String.Format("{0}:{1}", t.Hours, t.Minutes));
_

RememberTimeSpan.ToString(String)オーバーロードは、.NET 4以降でのみ利用可能です。

2
Soner Gönül

これを試してみてください100%動作します!!

myTimeSpan.ToString(@"dd\.hh\:mm");.
0
Bassam Alugili