9

ここで検索してみましたが、あまり役に立ちませんでした.. time_span を文字列に変換
したいのですが、タイムスパンを日数で返したくありません.. HH:mm:ss だけです。それを達成する方法は?

私のサンプルコードはここにあります:

              String time_span_par = "06:12:40";
              String time_str = "18:13:59";
              TimeSpan time_span_var = TimeSpan.Parse(time_span_par);
              TimeSpan time_span = TimeSpan.Parse(time_str);

              time_span = time_span.Add(time_span_var);
              string temp = time_span.ToString("HH:mm:ss");
4

8 に答える 8

17

Try using

DateTime d = new DateTime(time_span.Ticks);
string time = d.ToString("HH:mm:ss");
于 2010-03-05T06:18:17.257 に答える
6

This should work:

string temp = string.Format("{0}:{1}:{2}",
    time_span.Hours.ToString(), time_span.Minutes.ToString(),
    time_span.Seconds.ToString());

As per comment if you want the double digits you could do:

string temp = string.Format("{0}:{1}:{2}",
    time_span.Hours.ToString("00"), time_span.Minutes.ToString("00"),
    time_span.Seconds.ToString("00"));

Edited:as per jimmy's comment,

string temp = string.Format("{0:00}:{1:00}:{2:00}",time_span.Hours, time_span.Minutes, time_span.Seconds);
于 2010-03-05T06:18:46.187 に答える
3

これを試して:

    time_span = time_span.Add(time_span_var);
    string temp = time_span.ToString();
    temp = string.Format("{0}:{1}:{2}", time_span.TotalHours, time_span.TotalMinutes, time_span.TotalSeconds);

編集 あなたの質問に対するコメントを読んだ後、つまり、新しい日にゼロ時間を表示する必要があるということです。私の答えは、あなたが望むものではなく、合計時間、分、秒を提供します。

(+1) ケルシー;)

于 2010-03-05T06:26:45.283 に答える
3

現在、これを行うはるかに簡単な方法があります (フレームワーク 4 のみを使用していますが)。文字列を文字どおりに使用するだけで、TimeSpan インスタンスで直接実行できます。

time_span.ToString(@"hh\:mm\:ss")

それは出力します

00:26:39

これに出くわした人(私のように)に役立ちます。

乾杯 :)

于 2012-06-06T09:13:07.983 に答える
3

私が実装したコードは次のとおりです。

          string temp = DateTime.Today.Add(time_span).ToString("HH:mm:ss");

Marc Gravellによって最初に投稿された,

于 2010-03-05T06:42:22.457 に答える
1

ticks の値を DateTime に変換し、その ToString() を使用するだけです。

var date1 = DateTime.Now;
var date2 = DateTime.Now.AddSeconds( -1000 );
var diff = date1 - date2;
var temp = new DateTime( diff.Ticks ).ToString( "HH:mm:ss" )
于 2010-03-05T06:21:24.527 に答える
1
String time_span_par = "06:12:40";
String time_str = "18:13:59";
TimeSpan time_span_var = TimeSpan.Parse(time_span_par);
TimeSpan time_span = TimeSpan.Parse(time_str);

TimeSpan finalTime =  (time_span_var + time_span);
Console.WriteLine(finalTime);
Console.WriteLine(finalTime - TimeSpan.FromHours(finalTime.Days * 24));
于 2010-03-05T06:34:15.943 に答える
0

日数が関係ない場合は解決策がありますが、合計時間の変換を検索してこの回答に出くわしたため、36 時間は 36:00:00 として表示する必要があります。上記のヒントのいくつかを使用して、私が思いついたのは次のとおりです。

SomeLabel.Text = Math.Floor(ts.TotalHours).ToString() + ":" + ts.Minutes.ToString("D2") + ":" + ts.Seconds.ToString("D2");

合計時間は常に切り捨てられ、分と秒は 2 桁 (00 - 09) になるように埋められます。

于 2011-08-31T11:37:05.890 に答える