如何实现字符串转换的时间跨度?

我试着在这里搜索,但它对我帮助不大..
我想 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"); 

尝试使用

 DateTime d = new DateTime(time_span.Ticks); string time = d.ToString("HH:mm:ss"); 

这应该工作:

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

根据评论,如果你想要两位数你可以做:

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

编辑:根据吉米的评论,

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

试试这个:

  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)Kelseys;)

我实现的代码是:

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

最初由Marc Gravell发布,

现在有一种更简单的方法(尽管只使用框架4),您只需要按字面意思使用字符串,并且可以直接在TimeSpan实例上执行此操作。

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

这将输出

 00:26:39 

现在对于绊倒这个的人(比如我自己)有帮助。

干杯:)

只需将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" ) 
 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)); 

如果天数无关紧要,那么您就有了解决方案,但是我遇到了这个答案,搜索了总共需要几个小时的转换,因此36小时需要显示为36:00:00。 使用上面的一些提示就是我想出的:

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

总小时数总是向下舍入,分钟和秒数填充为2位数(00 – 09)