1. ホーム
  2. c#

[解決済み】秒を(時:分:秒:ミリ秒)に変換する最適な方法は?

2022-03-26 13:38:42

質問

秒を(時:分:秒:ミリ秒)に変換するのに最適な方法は何ですか?

例えば、80秒があるとします。この80秒をDateTimeか何かのように(00h:00m:00s:00ms)フォーマットに変換するための特別なクラス/テクニックは、.NETにありますか?

どのように解決するのですか?

について .Net <= 4.0 TimeSpanクラスを使用してください。

TimeSpan t = TimeSpan.FromSeconds( secs );

string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms", 
                t.Hours, 
                t.Minutes, 
                t.Seconds, 
                t.Milliseconds);

(Inder Kumar Rathoreの指摘による)。 .NET > 4.0 を使用することができます。

TimeSpan time = TimeSpan.FromSeconds(seconds);

//here backslash is must to tell that colon is
//not the part of format, it just a character that we want in output
string str = time .ToString(@"hh\:mm\:ss\:fff");

(Nick Molyneuxより) secondsがsecondsより小さいことを確認する。 TimeSpan.MaxValue.TotalSeconds を使用すると、例外を回避できます。