Timespan
をString
に変換するためにこのコードを使用します(例:14:53):
myTimeSpan.ToString("hh:mm");
しかし、このエラーは発生します:
入力文字列は、正しい形式ではありませんでした
これを行う適切な方法は何ですか?
myTimeSpan.ToString(@"hh\:mm")
カスタムTimeSpan形式指定子には、日と時間、時間と分、秒と小数秒の区切り記号などのプレースホルダー区切り記号は含まれません。代わりに、これらのシンボルは、文字列リテラルとしてカスタム形式の文字列に含める必要があります。たとえば、「dd.hh \:mm」は、日と時間の間の区切り文字としてピリオド(。)を定義し、時間と分の間の区切り文字としてコロン(:)を定義します。
TimeSpan
には@"hh\:mm\"
を使用する必要があります。タイムスパンのフォーマットはDateTime
とまったく同じではありません
myTimeSpan.ToString(@"hh\:mm");
詳細については、 Msdn をご覧ください
var result = string.Format("{0:D2}:{1:D2}", myTimeSpan.Hours, myTimeSpan.Minutes);
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));
_
Remember、TimeSpan.ToString(String)
オーバーロードは、.NET 4以降でのみ利用可能です。
これを試してみてください100%動作します!!
myTimeSpan.ToString(@"dd\.hh\:mm");.