如何实现字符串转换的时间跨度?
我试着在这里搜索,但它对我帮助不大..
我想将 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)